61

次の入力要素があります。

<input id="AAA_RandomString_BBB" type="text" />
<input id="AAA_RandomString_BBB_Start" type="text" />
<input id="AAA_RandomString_BBB_End" type="text" />

AAAとBBBは定数であり、私はそれらが何であるかを常に知っています。ただし、RandomStringは常にランダムになります。

AAA_RandomString_BBBの値を取得したい。IDが_Startまたは_Endで終わる入力要素からの値は必要ありません。

私は次のことを試みました:

$('[id^="AAA_"]')

ただし、上記では、「AAA_」で始まるIDを持つすべての入力要素が選択されています。

次のような正規表現タイプの構文を使用して選択する方法が必要です。

$('[id^="AAA_(.+?)_BBB"]')

これは可能ですか?そうでない場合、誰かが選択する方法を提案できますか

4

7 に答える 7

133

複数の属性セレクターで両方のセレクターを組み合わせることができます。

​$("[id^=AAA_][id$=_BBB]")

指定されたすべての属性フィルターに一致するすべての要素を返します。

  • [id^=AAA_]idで始まる属性を持つ要素と一致しAAA_
  • [id$=_BBB]idで終わる属性を持つ要素と一致します_BBB

別の一般的な代替手段:

于 2012-11-24T14:03:00.200 に答える
17

これを使って:

$('[id^="AAA_"][id$="_BBB"]')

フィドル: http://jsfiddle.net/J6hGx/

于 2012-11-24T14:03:40.863 に答える
8

AAA次のように、で始まる IDと終わるID を探すことができますBBB

​$("[id^=AAA_][id$=_BBB]")

作業フィドル: http://jsfiddle.net/DN9uV/

于 2012-11-24T14:07:03.157 に答える
8

これは次のように実行できます。

$('input').filter(function(){ return this.id.match(/^AAA_.+_BBB$/) })

$('input', <context>)検索をより正確にするために使用できます。こちらもご覧ください

于 2012-11-24T14:15:32.033 に答える
0

私は一意である必要のないクラスセレクターでこれを解決するために使用します。

これは、複雑な検索が必要ないため、速度にもプラスの効果があります。さらに、これをさまざまな要素のさまざまなスタイル設定に使用できます。

例えば

<elem id="1" class="aa">element type aa</elem>
<elem id="2" class="aa">element type aa</elem>
<elem id="3" class="aa bb">element type aa and bb</elem>
<elem id="4" class="bb">element type bb</elem>

これで、クラスセレクターを簡単に使用できます

$('.aa').click(function(){
     console.log( 'clicked type aa #' + $(this).attr('id') );
});

$('.bb').click(function(){
     console.log( 'clicked type bb #' + $(this).attr('id') );
});
于 2012-11-24T14:14:43.387 に答える
0

_BBB で終わる ID を確認するだけの方がよいでしょう。

 $("[id$=_BBB]")
于 2012-11-24T18:20:36.233 に答える