3

我有这样的事情:

<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 生成更多行时,我可以将 +1 添加到行 ID)...。有任何想法吗 ?

4

5 回答 5

5

我建议您保留一个带有最后一个值的变量,而不是这样做。然后追加时,您可以更改此值。这样可以节省获取 id 并对其进行解析。

于 2012-12-19T08:18:22.097 回答
2

假设它们在同一个 div 中,并假设 row919 是最后一个元素,您可以执行以下操作:

var last_element_id = $('.parentDiv').last().attr('id');
var number = last_element_id.replace('row','');
于 2012-12-19T08:18:02.200 回答
1

如果你不能按照 Jon 的建议去做,你可以试试这个:

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 的后缀的最大数量,并获取具有 id 的元素row + max

于 2012-12-19T08:26:48.627 回答
0

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

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

正如其他答案所说,存储变量并递增会更好地获得下一个增量。但是,您仍然应该考虑 data-id 结构,而不是尝试将其解析出带有标签的 id 属性。

于 2012-12-19T08:18:59.620 回答
0

使用:最后

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

小提琴示例jsfiddle

于 2012-12-19T08:41:36.850 回答