1

append()を介して追加した要素をクエリできないのはなぜですか?

$('body').append('<div id="testing"></div>');
if($("#testing").length == 0)
    alert("WTF!  Testing div should be there!");

JSの実行が終了するまで発生しないレイアウトなどはありますか?

どうすればこれを回避できますか?すぐに使用できるdom要素を作成するために呼び出すことができる他のメソッドはありますか?

4

3 に答える 3

5

このコードがどこで実行されているかを調べます。これはjQuery(document).ready()関数ブロックで実行されていますか?完全なコードが表示されません。

私がこのようなものに遭遇したとき、それは通常、domの準備ができる前に私のコードが実行されているためです。これを試してください:

jQuery(document).ready(function(){
    $('body').append('<div id="testing"></div>');
    if($("#testing").length == 0){
        alert("WTF!  Testing div should be there!");
    }
});
于 2012-07-16T21:42:19.343 に答える
0

の長さ#testingが1であるため。ここに示すように:http://jsfiddle.net/Skooljester/FrsHs/2/

于 2012-07-16T21:36:26.813 に答える
0

jsFiddleデモ

$(function(){

    if( $("#testing").length  ){   // test for existance               
            alert("YEEE there it is!");                
    }else{                 
             alert("Buuuubububu :( ");            
    }

});

存在しない使用をテストする場合:

if( $("#testing").length <= 0  )

また:

if( !($("#testing").length)  )
于 2012-07-16T21:38:23.633 に答える