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を介してさらに行を生成すると、行IDに+1を追加できます)。何か案は ?

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

:lastを使用する

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

フィドルの例jsfiddle

于 2012-12-19T08:41:36.850 に答える
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 に答える