How to get the Previous Sibling name

后端 未结 2 1341
感动是毒
感动是毒 2021-01-21 06:18

I need to get the name of the previous sibling . to keep it simple i have some sample code



 
   

        
相关标签:
2条回答
  • 2021-01-21 06:46

    Using jQuery it would be:

    $('#item2').prev().attr("name")​​​​​​​​​​;​
    

    With regular javascript you would need to use the following function (to ensure whitespace nodes are ignored)

    getPreviousSiblingName(document.getElementById("item2"))
    
    function getpreviousSiblingName(element) {
        var p = element;
        do p = p.previousSibling;
        while (p && p.nodeType != 1);
        return p.attributes["name"].value;
    }
    
    0 讨论(0)
  • 2021-01-21 06:54

    That's because more likely your previousSibling will be a text node and not an element node. You need previousElementSibling (where supported) or a loop that will get the previousElement until the nodeType will be 1 (Node.ELEMENT_NODE).

    In addition, name is not applying to p element (see https://developer.mozilla.org/en/DOM/Element.name) it could be better if you use a custom attribute (like an HTML5 data-* attribute, in your case data-name maybe) and therefore use dataset to get the attribute's value, or a generic getAttribute.

    Of course library like jQuery can help to abstract all those things, the explanation is related to just vanilla JavaScript.

    0 讨论(0)
提交回复
热议问题