0

调用 end() 会从 jQuery 堆栈中弹出最后一项,所以

$("div")

返回相同的东西

$("div").children().end()

我在调试器中看不到与返回的内容有任何区别,但我注意到

divs1 = $("div")
divs2 = $("div").children().end()
console.log(divs1 == divs2) // false

为什么这两个对象不相等?javascript中的对象是否有某种唯一标识符,就像Ruby中的那样?还是我在控制台中看不到区分两者的东西?

4

1 回答 1

4

通过选择器获取 jQuery 对象时,jQuery 每次都会将结果包装在一个新对象中。所以目标对象是相同的,包装 jQuery 对象不是。

您应该以这种方式直接比较 DOM 节点:

console.log(divs1[0] == divs2[0]) // true

...[0]可以访问第一个节点)

于 2012-12-22T09:05:32.217 回答