Ответ 1
Вам нужно сравнить исходные элементы DOM, например:
if ($(this).parent().get(0) === $('body').get(0))
или
if ($(this).parent()[0] === $('body')[0])
Итак, я пытаюсь выяснить, как сравнить два объекта jQuery, чтобы увидеть, является ли родительский элемент телом страницы.
вот что у меня:
if ( $(this).parent() === $('body') ) ...
Я знаю, что это неправильно, но если кто-то понимает, что я получаю, могли бы они указать мне на правильный способ сделать это?
Вам нужно сравнить исходные элементы DOM, например:
if ($(this).parent().get(0) === $('body').get(0))
или
if ($(this).parent()[0] === $('body')[0])
Почему бы и нет:
if ($(this).parent().is("body")) {
...
}
?
Циклирование не требуется, тестирование первого первого node не требуется. Практически ничего не требуется, кроме обеспечения того, что они имеют одинаковую длину и разделяют идентичные узлы. Вот небольшой фрагмент кода. Возможно, вы захотите преобразовать это в плагин 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 {}
});
Я наткнулся на эти ответы и задался вопросом, какой из них лучше. Все зависит от ваших потребностей, но самое легкое в написании, чтении и исполнении - это, конечно, лучшее. Здесь был создан тестовый тест, который я принял для принятия решения.