默认情况下我有一个带有id的div,然后我在那里添加一些带有ajax调用的div。
我如何使用jquery获取这些id;
例如:
<div class="main">
<div id="0" class="take">test</div> <!-- this one is here by default -->
<!-- added by ajax -->
<div id="1" class="take">test</div>
<div id="2" class="take">test</div>
<!-- end added by ajax -->
<!-- added by another ajax request -->
<div id="3" class="take">test</div>
<div id="4" class="take">test</div>
<!-- end added by ajax -->
</div>
如果我这样做:
alert($("div.take:last").attr('id');)
我只会0
。看起来我需要使用类似.live
的东西...这可能非常简单,我只是看不到它。
任何想法?
感谢
编辑:如果添加一些带有请求的div,那么我再添加一些我仍然得到0
答案 0 :(得分:1)
在你的ajax请求的回调中,你可以正确地得到正确的最后一个div。在ajax请求完成之前你不能这样做,否则该语句将返回在DOM更新之前找到的最后一个div
答案 1 :(得分:1)
以下是代码工作的示例,其中包括使用jQuery添加新的<div>
。
答案 2 :(得分:1)
我同意fabrizio ...你说你的ajax请求正在将div附加到DOM中。所以你可能正在调用
alert($("div.take:last").attr('id'););
在请求实际完成之前。在回调函数中调用上面的东西(成功)。
答案 3 :(得分:0)
http://api.jquery.com/last-child-selector/
ps:你的DOM是你的HTML吗?
答案 4 :(得分:0)
您提供的代码工作正常。See this demo。
试试这个:
// after ajax call..
var last = $('.take').length - 1 ;
alert($(".take").eq(last).attr('id'));