我有一组广播组如下:
<INPUT TYPE='radio' NAME='SI1' VALUE='0'>Y</br>
<INPUT TYPE='radio' NAME='SI1' VALUE='1'>N</br>
<INPUT TYPE='radio' NAME='SI1' VALUE='2'>NA</br>
<INPUT TYPE='radio' NAME='1S1' VALUE='0'>group1</br>
<INPUT TYPE='radio' NAME='1S1' VALUE='1'>group2</br>
<INPUT TYPE='radio' NAME='1S1' VALUE='2'>group3</br>
<INPUT TYPE='radio' NAME='1S2' VALUE='0'>group1</br>
<INPUT TYPE='radio' NAME='1S2' VALUE='1'>group2</br>
<INPUT TYPE='radio' NAME='1S2' VALUE='2'>group3</br>
<INPUT TYPE='radio' NAME='SI2' VALUE='0'>Y</br>
<INPUT TYPE='radio' NAME='SI2' VALUE='1'>N</br>
<INPUT TYPE='radio' NAME='SI2' VALUE='2'>NA</br>
<INPUT TYPE='radio' NAME='2S1' VALUE='0'>group1</br>
<INPUT TYPE='radio' NAME='2S1' VALUE='1'>group2</br>
<INPUT TYPE='radio' NAME='2S1' VALUE='2'>group3</br>
<INPUT TYPE='radio' NAME='2S2' VALUE='0'>group1</br>
<INPUT TYPE='radio' NAME='2S2' VALUE='1'>group2</br>
<INPUT TYPE='radio' NAME='2S2' VALUE='2'>group3</br>
<INPUT TYPE='radio' NAME='2S3' VALUE='0'>group1</br>
<INPUT TYPE='radio' NAME='2S3' VALUE='1'>group2</br>
<INPUT TYPE='radio' NAME='2S3' VALUE='2'>group3</br>
...
基本上我有一个单选按钮组。我想为所有单选按钮分配组头的值。 例如,如果用户在名为“SI2”的选项组中设置值2,则以“2S”开头的所有组都应具有值2.
我尝试使用我从google搜索获得的'*='
和'~='
选择器,但没有任何效果。
$('input[type=radio][name~=SI]').change(function() {
var names = section_index+'S';
$('input[type=radio][name*='+names+']').value=this.value;
});
这对第一个选择器本身(包含SI的名称)不起作用,然后我改为:
$('input[type=radio][name=SI'+section_index+']').change(function() {
var names = section_index+'S';
$('input[type=radio][name*='+names+']').value=this.value;
});
我在一个以section_index
作为控制变量的循环中完成了上述操作,这里,第一个选择器工作(名称完全匹配)但下一个选择器不工作(名称包含section_index
)。 / p>
如果有帮助,我可以更改组的命名。
请考虑我是jquery的新手,所以请原谅我是否错过了非常明显的事情。
答案 0 :(得分:1)
所以你想要定位所有的“SI ...”单选按钮;为此,您需要找到开始的所有单选按钮,其中包含“SI”。 “以...开头”的选择器是“^ =”:
$('input[type=radio][name^=SI]').change(function() {
var header_radio_clicked = $(this);
var value = header_radio_clicked.val();
var target_name_prefix = value + "S";
$('input[type=radio][name^='+target_name_prefix+']').val(value);
});
所以input[type=radio][name^=SI]
找到名称以“SI”开头的所有单选按钮,'input[type=radio][name^='+target_name_prefix+']'
将找到以“S”开头的单选按钮(即0S,1S,2S)
希望这有帮助!
答案 1 :(得分:0)
所以问题不仅在于选择单选按钮,而且还以编程方式检查它。
=~
选择器仅适用于包含单词(以空格分隔)
在这种情况下,*=
或^=
将适用于选择器。
要检查所选的单选按钮,需要使用prop
功能。
此外,还应调用change()
以立即反映更改。
$('input[type=radio][name^="SI"]').change(function() {
var names = this.name.substring(2)+'S'
$('input[type=radio][name*='+names+'][value='+this.value+']').prop('checked',true).change();
});