所以我试图弄清楚如何比较两个jQuery对象,看看父元素是否是页面的主体。
这就是我所拥有的:
if ( $(this).parent() === $('body') ) ...
我知道这是错的,但如果有人理解我所得到的,他们会指出我这样做的正确方法吗?
答案 0 :(得分:157)
您需要比较原始DOM元素,例如:
if ($(this).parent().get(0) === $('body').get(0))
或
if ($(this).parent()[0] === $('body')[0])
答案 1 :(得分:59)
为什么不:
if ($(this).parent().is("body")) {
...
}
答案 2 :(得分:18)
不需要循环,不需要测试单个第一个节点。除了确保它们具有相同的长度并共享相同的节点之外,几乎不需要任何其他内容。这是一个小代码片段。您甚至可能希望将其转换为jquery插件以供您自己使用。
jQuery(function($) {
// Two separate jQuery references
var divs = $("div");
var divs2 = $("div");
// They are equal
if (divs.length == divs2.length && divs.length == divs.filter(divs2).length) {
// They are not
} else {}
});
答案 3 :(得分:2)
我偶然发现了这些答案,并想知道哪一个更好。这一切都取决于您的需求,但最简单的键入,读取和执行当然是最好的。这是我做出决定的性能测试用例。