如何使用jquery获取最后一个div的id,附加ajax?

时间:2012-03-21 08:54:46

标签: jquery ajax live

默认情况下我有一个带有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

5 个答案:

答案 0 :(得分:1)

在你的ajax请求的回调中,你可以正确地得到正确的最后一个div。在ajax请求完成之前你不能这样做,否则该语句将返回在DOM更新之前找到的最后一个div

答案 1 :(得分:1)

以下是代码工作的示例,其中包括使用jQuery添加新的<div>

Working Example

答案 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'));