2013-03-20 14 views
7

動的に作成されたページがあります。変更機能を書き込むためにはjQueryセレクタヘルプ - 特定の文字で始まり、終わるIDを持つ要素を見つける方法

<input type="radio" id="cc-radio-opt-0" /> 
<input type="radio" id="cc-radio-opt-1" /> 
<input type="radio" id="gc-radio-opt-0" /> 
<input type="radio" id="gc-radio-opt-1" /> 

が、私はこのような何かをやっている:これはうまく機能

$('[id^=cc-radio-opt-]').live("change", function() { 
    var idx = $(this).attr('id').split('-').pop(); 
}); 

それはそうのようなIDが持つ別のラジオボタンの数を持つことができます。しかし、今、その変更機能の中で、私は他の関連分野の束を隠す必要があります。彼らは、このように命名されています

<input type="text" id="cc-number-0" /> 
<input type="text" id="cc-month-0" /> 
<input type="text" id="gc-number-0" /> 
<input type="text" id="gc-month-0" /> 
<input type="text" id="cc-number-1" /> 
<input type="text" id="cc-month-1" /> 
<input type="text" id="gc-number-1" /> 
<input type="text" id="gc-month-1" /> 

私はそのIDがidx変数によって決定(クリックされていますラジオ・ボタンと同じ番号に「CC」と終わりで始まるすべてのフィールドをつかむことができるようにする必要があります。私はこれを行うことにより、「CC」で始まるすべてのフィールドを取得することができます知っている:

$('[id^=cc-]'); 

しかし、どのように、私もcc-radio-opt-1ラジオがある場合、彼らは、他の言葉では何でもidxを終了する必要があることを示していることができますか?クリックしたら、どうすればcc-number-1cc-month-1

+0

いいえ、彼らはIDが重複しないされています。あなたがもっと注意深く見ると、あるグループはccで始まり、もうひとつはgcで始まることがわかります。 – EmmyS

+1

を参照してください。 .liveは廃止されましたhttp://api.jquery.com/live/ 代わりに.onを使用する必要があります http://api.jquery.com/on/ – iAmClownShoe

+0

@iAmClownShoe - 私は気付いていますが、私たちが扱っているCMSでは、古いバージョンのjQueryが残っています。 – EmmyS

答えて

3

「終了」セレクタを使用してセレクタをフィルタリングします。

http://api.jquery.com/attribute-ends-with-selector/

$('[id^="cc-"]').filter('[id$="idx"'); 

そして、引用符を含めるようにしてください。

+0

は '$( '[id^= cc - ] [id $ = 1]')'?より速い '。 –

+0

@mpapecおそらく、それはマイクロ最適化になります。アプリケーションのニーズに最も適した方法を使用してください。 –

関連する問題