调用 end() 会弹出 jQuery 堆栈中的最后一项,因此
$("div")
返回相同的内容
$("div").children().end()
我在调试器中看不到返回的内容有任何差异,但我注意到
divs1 = $("div")
divs2 = $("div").children().end()
console.log(divs1 == divs2) // false
为什么这两个对象彼此不相等? javascript 中的对象是否有某种唯一标识符,就像 Ruby 中那样?或者有什么我在控制台中看不到的东西可以区分两者?
最佳答案
当通过选择器获取 jQuery 对象时,jQuery 每次都会将结果包装在一个新对象中。因此,目标对象是相同的,而包装 jQuery 对象则不同。
你应该这样直接比较 DOM 节点:
console.log(divs1[0] == divs2[0]) // true
(用...[0]
可以访问第一个节点)
关于javascript - jQuery end() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14001484/