Jquery获取元素的最新id并提取数字

时间:2012-12-19 08:15:37

标签: javascript jquery

我有这样的事情:

<div id="row1">Some content</div>
<div id="row2">Some content</div>
<div id="row3">Some content</div>
<div id="row4">Some content</div>
<div id="row7">Some content</div>
<div id="row15">Some content</div>
<div id="row915">Some content</div>
<div id="row919">Some content</div>

行实际上是从PHP数组中提取的,现在我需要提取最后一行的数字,例如在这种情况下,这将是919.(因此,当我使用append通过jQuery生成更多行时,我可以向行id添加+1)....任何想法?

5 个答案:

答案 0 :(得分:5)

我建议您不要这样做,而是使用最后一个值保留变量。然后当你附加时你可以改变这个值。这节省了获取id并解析它。

答案 1 :(得分:2)

假设它们在同一个div中,假设row919是最后一个元素,你可以这样做:

var last_element_id = $('.parentDiv').last().attr('id');
var number = last_element_id.replace('row','');

答案 2 :(得分:1)

如果你不能做乔恩建议你可以试试这个:

var max = -Infinity;
$('div')​​.each(function () {
    var match = this.id.match(/^row([0-9]+)$/)
    if (max < match[1]) {
        max = match[1];            
    }
});

$('#row' + max).html('Max!');
​

以下是一个示例小提琴:http://jsfiddle.net/HTkkb/

上面的脚本找到所有div的id的后缀的最大数量,并获取标识为row + max的元素

答案 3 :(得分:0)

更容易使用data-属性和类:

<div class="row" data-id="1">Some content</div>
<div class="row" data-id="2">Some content</div>

正如其他答案所说,存储变量和递增会更好地获得下一个增量。但是你仍然应该考虑data-id结构,而不是试图从id属性中解析出来的id属性。

答案 4 :(得分:0)

使用:最后

alert($('div:last').attr('id').split('row')[1]);

小提琴示例jsfiddle