我需要编写一些能够检测任何jquery选择器的函数:已经存在于DOM中。 我怎么能做到这一点。
如果渲染元素,则必须返回true,如果元素未渲染,则必须返回false。
可能的选择器:
'<div />' // text jquery selected will converted to $('<div />')
$('<div />') // simple jquery selector such as jQuery('<div />')
'#somediv' or .somediv // already rendered DOM element
isDomExists('<div />')
=&gt;假
isDomExists($('<div />'))
=&gt;假
isDomExists($('#somediv'))
=&gt;真
答案 0 :(得分:3)
对于当前在文档中的元素以及与文档中的元素匹配的选择器,这将返回true。
function isInDoc(sel) {
var $sel = jQuery(sel);
return $sel.length && jQuery.contains(document.documentElement, $sel[0]);
}
答案 1 :(得分:2)
您还可以检查节点的父节点数, 没有父节点的节点不包含在DOM中:
HTML:
<div id="mydiv"></div>
Javascript:
alert($("<div/>").parent().length);
alert($("#mydiv").parent().length);
答案 2 :(得分:1)
$('<div />')
创建新的DIV元素(但不会附加到DOM)。您需要的是$('div').length == 0
答案 3 :(得分:0)
您可以使用jquerys .ready()
:
Documentation