DOM操作获取不同位置的同名标签元素,他们会相等吗?

DOM操作获取不同位置的相同元素,他们会相等吗?

答案是否定的,测试一下:

<html5>
    <head>
        <meta charset="utf-8">
        <script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script>
        <title>Jquery与DOM测试</title>
    </head>
    <body>
        <!-- 两个处于不同位置,但是内容相等的span标签  -->
        <div id="div1"><span onclick="test(this)">这个span</span></div>
        <br>
        <br>
        <div id="div2"><span onclick="test(this)">这个span</span></div>
    </body>
    <script>
            //点击div1中的span通过this传过来dom对象d_obj
        function test(d_obj){
            //获取div2的span(jquery转dom与dom方式直接获取相同)
            console.log($("#div2 span")[0]);
            //比较两者
            if($("#div2 span")[0] == d_obj){
                console.log("即使所处位置不一样,但是标签内容相同就相等");
            }else{
                console.log("不一样的位置即使标签相同也是不同的");
            }
        }
    </script>
    </html>

image-20200421002712422

可能对象中有值来区分不同位置的元素,因此即使两个标签完全相同,哪怕从内容到属性都相同,获取元素后的对象两者不相等。

原文地址:https://www.cnblogs.com/taoxiaoyao/p/12741761.html