有什么问题吗?
我在Google上搜索了很多人,他们说只要使用==就可以了
但是当我运行以下代码时
<body>
<button id="A" type="button">A</button>
</body>
<script>
$(document).ready(function(){
var temp = $("#A");
$("#A").click(function(){
alert($(this)==temp);
});
});
</script>
结果始终为假;
有人可以帮助我吗?谢谢
答案 0 :(得分:2)
您不能将两个对象与==
进行比较。 temp 保存元素的引用。因此,将引用与实际元素进行比较。
尝试使用.is()
console.log({}=={}); // false
$(document).ready(function(){
var temp = $("#A");
$("#A").click(function(){
alert($(this).is(temp));
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="A" type="button">A</button>
答案 1 :(得分:0)
每当我们在javascript中使用equal运算符比较两个对象时,它总是比较它们的引用而不是实际值。在这里,您要比较引用不同的两个对象,这就是为什么您会得到错误的结果。