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