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