我有一个动态创建的页面。它可以有许多不同的单选按钮,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();
});
这很有效。但是现在,在改变函数中,我需要隐藏一堆其他相关字段。它们的名字如下:
<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以“cc”开头的所有字段,并以与单击的单选按钮相同的数字结尾(由idx
变量确定。我知道我可以获得所有以“cc”开头的字段:
$('[id^=cc-]');
但我怎么能表明他们需要以idx
为止结束?换句话说,如果点击了cc-radio-opt-1
电台,我怎么才能获得cc-number-1
和cc-month-1
?
答案 0 :(得分:14)
$('[id^=cc-][id$=1]')
答案 1 :(得分:3)
使用“ends with”选择器过滤选择器。
http://api.jquery.com/attribute-ends-with-selector/
$('[id^="cc-"]').filter('[id$="idx"');
并确保包含引号。