为什么我不能查询我刚刚通过 append() 添加的元素?
$('body').append('<div id="testing"></div>');
if($("#testing").length == 0)
alert("WTF! Testing div should be there!");
是否有某种布局在 JS 完成运行之前不会发生?
我怎样才能解决这个问题?是否有其他方法可以调用来创建 dom 元素以立即使用?
为什么我不能查询我刚刚通过 append() 添加的元素?
$('body').append('<div id="testing"></div>');
if($("#testing").length == 0)
alert("WTF! Testing div should be there!");
是否有某种布局在 JS 完成运行之前不会发生?
我怎样才能解决这个问题?是否有其他方法可以调用来创建 dom 元素以立即使用?
我会看看这段代码在哪里执行。这是使用 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!");
}
});
因为长度#testing
是1。如图:http: //jsfiddle.net/Skooljester/FrsHs/2/
$(function(){
if( $("#testing").length ){ // test for existance
alert("YEEE there it is!");
}else{
alert("Buuuubububu :( ");
}
});
如果您测试不存在使用:
if( $("#testing").length <= 0 )
或者:
if( !($("#testing").length) )