jQuery比较对象总是导致错误

时间:2018-12-17 08:34:52

标签: javascript jquery

有什么问题吗?

我在Google上搜索了很多人,他们说只要使用==就可以了

但是当我运行以下代码时

<body>
<button id="A" type="button">A</button>
</body>
<script>
$(document).ready(function(){
    var temp = $("#A");
    $("#A").click(function(){
        alert($(this)==temp);
    });
});
</script>

结果始终为假;

有人可以帮助我吗?谢谢

2 个答案:

答案 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运算符比较两个对象时,它总是比较它们的引用而不是实际值。在这里,您要比较引用不同的两个对象,这就是为什么您会得到错误的结果。