0

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 />')=>偽

isDomExists($('<div />'))=>偽

isDomExists($('#somediv'))=>真

4

4 に答える 4

3

これは、現在ドキュメント内にある要素、およびドキュメント内の要素に一致するセレクターに対して true を返します。

function isInDoc(sel) {
    var $sel = jQuery(sel);
    return $sel.length && jQuery.contains(document.documentElement, $sel[0]);
}
于 2013-11-14T14:35:45.653 に答える
2

ノードの親の数を確認することもできます。親のないノードは DOM に含まれていません。

http://jsfiddle.net/w6XZZ/

HTML:

<div id="mydiv"></div>

Javascript :

alert($("<div/>").parent().length);
alert($("#mydiv").parent().length);
于 2013-11-14T14:38:44.853 に答える
1

$('<div />') 新しい DIV 要素を作成します (ただし、DOM には追加しません)。代わりに必要なのは$('div').length == 0

于 2013-11-14T14:36:58.393 に答える