jQuery selector help - how to find element whose ID starts and ends with specific characters

风流意气都作罢 提交于 2019-12-19 06:05:49

问题


I have a page that's created dynamically. It can have a number of different radio buttons with ID's like so:

<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" />

In order to write change functions, I'm doing something like this:

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

This works well. But now, inside that change function, I need to hide a bunch of other related fields. They are named like this:

<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" />

I need to be able to grab all the fields whose IDs begin with "cc" and end with the same number as the radio button that's been clicked (determined by the idx variable. I know I can get all the fields that start with "cc" by doing this:

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

But how can I also indicate that they need to end with whatever idx is? In other words, if the cc-radio-opt-1 radio is clicked, how can I get only cc-number-1 and cc-month-1?


回答1:


Well, you were almost there... $('[id^=cc-][id$=1]')

DEMO:http://jsfiddle.net/pavloschris/nr3ad/




回答2:


Filter your selector using the "ends with" selector.

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

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

And make sure to include quotes.



来源:https://stackoverflow.com/questions/15530361/jquery-selector-help-how-to-find-element-whose-id-starts-and-ends-with-specifi

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!