11

我有一个动态创建的页面。它可以有许多不同的带有 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(); 
});

这很好用。但是现在,在那个 change 函数中,我需要隐藏一堆其他相关的字段。它们是这样命名的:

<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-1cc-month-1

4

2 回答 2

16

好吧,你几乎就在那里...... $('[id^=cc-][id$=1]')

演示:http: //jsfiddle.net/pavloschris/nr3ad/

于 2013-03-20T17:19:26.360 回答
4

使用“结束于”选择器过滤您的选择器。

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

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

并确保包括引号。

于 2013-03-20T17:18:54.217 回答