如何获取包含其他元素中某个元素的最后一个的包装集?

时间:2011-08-16 22:10:45

标签: jquery html jquery-selectors wrapper

在jQuery中,我希望获得一组元素中某个元素的最后一个元素。例如,我有这些带孩子的DIV:

<div class="test">
    <div class="inside">
    </div>
    <div class="inside">
    </div>
    <div class="inside">
    </div>
</div>
<div class="test">
    <div class="inside">
    </div>
    <div class="inside">
    </div>
    <div class="inside">
    </div>
</div>
<div class="test">
    <div class="inside">
    </div>
    <div class="inside">
    </div>
    <div class="inside">
    </div>
</div>

我想在每个具有“test”类的div中选择带有“inside”类的最后一个div。像这样:

var customWrappedSet;
$('.test').each(function()
{
    customWrappedSet.add($(this).find('.inside').last());
});
customWrappedSet.text('hello');

理想情况下,这将是三个元素(每个.test中的最后一个.inside)。结果如下:

<div class="test">
    <div class="inside">
    </div>
    <div class="inside">
    </div>
    <div class="inside">
        hello
    </div>
</div>
<div class="test">
    <div class="inside">
    </div>
    <div class="inside">
    </div>
    <div class="inside">
        hello
    </div>
</div>
<div class="test">
    <div class="inside">
    </div>
    <div class="inside">
    </div>
    <div class="inside">
        hello
    </div>
</div>

我不知道该怎么做。

2 个答案:

答案 0 :(得分:5)

你想要的是最后一个子选择器,而不是简单的最后一个。这将返回其父级中最后一个子元素的每个元素:

$('.test .inside:last-child');

fiddle example

答案 1 :(得分:2)

jsFiddle

$('div.inside:last', 'div.test');

使用可以使用':last'伪类来匹配最后一个元素。这里的第二个参数将搜索与第一个选择器匹配的元素仅限于具有“test”类的div。