事情挺简单,我一开始的界面是这种结构的
<body>
<div id="TOP">
</div>
<div id="aritcle" class="...">
</div>
</body>
然后我用ajax动态的添加了几个div,是这样的
var s="";
for()
{
s+='<div class="comment">'+...'+'</div>';
$("body").append(s);
s="";
}
这样写我的数据是成功添加到界面了,但是我尝试获取后面添加的元素再进行进一步的处理的时候,我打算遍历一遍我添加的div,结果
$("body").children().length 的值居然是2...也就是说只获取到了我之前页面就有的两个div,我后边动态添加的div在选择器里没有办法获取到,然后我用
$("body").children().eq(2) 也没有办法获取到后边的内容,想问问这是什么情况
高强度在线等解惑,3Q
你的事件是怎么加上的,是下面这样的话当然获取不到
var s="";
for()
{
s+='<div class="comment">'+...'+'</div>';
$("body").append(s);
console.log(。。。。);
s="";
}
如果你想保持这样的方法,需要你这么改改:
var s=$("body");
for()
{
$("body").append($("<div class='comment'>"+..."+"</div>"));
}
这样写的话就是创建的节点,就能找到节点了,你上面的写法可以理解成是加入的字符串,虽然html把他解析成元素了但是JS内部暂时不认为他是元素,所以获取不到
你添加元素之后,dom中有刷新出来么
f12看一下添加时是否报错。可以给添加的div里写上内容,看一下有没有append进去