jquery对象是否相同
2014年2月11日 13:46
通过不同形式得到同一个htnl元素,如何比较它是否相同?
假设得到后,两者变量名是A和B. (A和B是js元素,还是jquery对象,此时不清楚)
第一个想到的是方法是$(A) == $(B),结果返回false
再试试$(A)[0] == $(B)[0],结果返回true
它比较的是什么?
看看下面例子,下面的两个input比较,会相同吗.
<div id="content"> <input name="user_name"/> <input name="user_name"/> </div>
它们不同
$(function(){ var inputs = $("#content input") console.info(inputs[0] == inputs[1]); //false console.info($(inputs[0]) == $(inputs[0])); //false });
其实比较只有两种类型: 值类型和引用类型.
上面就是引用比较. jquery的$会产生新对象,每次的引用都不同,自然就不相等.
所以只能用最初的引用进行比较,而不是jquery转化后的.