nodejs理解[笔记]

jquery对象是否相同

妙音 posted @ 2014年2月11日 13:46 in webui , 3813 阅读
通过不同形式得到同一个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转化后的.
Avatar_small
λ 说:
2014年2月11日 15:33

原始类型的直接比较相等才有意义,不过 NaN 是个例外。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter