0

以下をコーディングしました。

var btnID = $link.attr('id');
var cityNumber = btnID.substring(4);
$('#cityLegend-1').html('City ' + cityNumber);

ただし、btnID が「btn-」で始まる場合にのみ、最後の 2 行を実行するためにこれが必要です。これが発生したことを確認し、id が「btn-1」または「btn-999」のようなものである場合、最後の 2 行を実行する方法はありますか?

4

5 に答える 5

6

を使用.eq(-index)して、セット内の最後の要素からさかのぼってインデックスを渡すことができます。

ライブデモ

$('[id^=cityLegend-]').eq(-1) for last
$('[id^=cityLegend-]').eq(-2) for second last

編集、部分文字列の代わりに分割を使用して、ハイフンの後の数値を取得できます。

var btnID = $link.attr('id');
var cityNumber = btnID.spilt('-')[1];
于 2012-12-02T04:02:26.647 に答える
3
/** .substring() does a length check internally **/
if (btnId.substring(0,3) == "btn") { 
    // do stuff
}
于 2012-12-02T04:02:43.680 に答える
1

非常に多くのオプション。これもうまくいきます:

var btnID = $(link).attr('id');
if(btnID.substr(0,4) == 'btn-'){
    var cityNumber = btnID.substring(4);
    $('#cityLegend-1').text('City ' + cityNumber);
}else{
    $('#cityLegend-1').text('City ' + btnID);
}
于 2012-12-02T04:26:54.933 に答える
0

.match()メソッドを使用して、開始'id'が。で始まるかどうかをチェックする正規表現を使用することができbtnます。

if (btnID.match(/^btn/g)) {
     //do stuff
}
于 2012-12-02T04:36:13.243 に答える
0

あなたのコードがどれほど柔軟かはわかりませんが、私は通常、同様のセットアップに対して少し異なるアプローチをとっています。私は次のことを行います(これはあなたにとって可能である場合と不可能である場合があります):

  • で特定の文字列で始まる要素を検索する代わりに、関心のあるすべてのボタンにid固有classのものを使用してみませんか。そうすれば、次のような jQuery セレクターを使用できます。$('.mySpecialBtn')
  • の最後に整数を付けてid解析する代わりに、data属性を使用して ID を含めてみませdata-my-button-id="1"んか?

したがって、両方の部分をまとめると、次のようになります。

HTML:

<button class="mySpecialBtn" data-my-button-id="1">Button 1</button>
<button class="mySpecialBtn" data-my-button-id="2">Button 2</button>
<button class="mySpecialBtn" data-my-button-id="3">Button 3</button>

JS:

$('mySpecialBtn').each(function() {
    var btnId = $(this).data("my-button-id"));
    // do something with btnId
});
于 2012-12-02T04:56:08.623 に答える