我知道您可以检查$('div').length
是否存在元素,但是当使用.remove()
销毁某个元素时,.length
仍会报告div存在。我怎样才能确定它是否真的存在?
if ($('div').length) {
alert('yes')
} else {
alert('no')
}
答案 0 :(得分:7)
存在,你的意思是你想看看它是否存在于dom中?检查“html”是否是祖先:
var $myDiv = $(".myDiv");
$myDiv.closest("html").length; // returns 1
$myDiv.remove();
$myDiv.closest("html").length; // returns 0
或使用.is("html *")
。它返回一个布尔值,这很方便:
var $myDiv = $(".myDiv");
$myDiv.is("html *"); // returns true
$myDiv.remove();
$myDiv.is("html *"); // returns false
答案 1 :(得分:6)
测试它是否有父母:
if ($element.parent().length) { alert('yes') }
else { alert('no') }
或者如果你有对DOM元素的引用:
if(element.parentNode) {
// yes
}
显然,这仅适用于您已经引用的元素。
FWIW,元素本身仍然存在,它不是DOM树的一部分。
答案 2 :(得分:4)
if (!$foo.closest('html').length) { //Element is detached }
如果删除了一个元素的父元素(在这种情况下元素本身仍然具有父元素),这仍然有效。
我引用this answer。
答案 3 :(得分:0)
你可以在删除元素之前获取元素的父元素,并且在删除元素之后你可以像这样检查!
var parent = $(element).parent();
$(element).remove();
if(parent.children(element)) { alert('yes'); }
else { alert('no'); }
当然,元素将是一些jquery选择器