不知道如何做到這一點,否則...... 但是,這是我想要做的事:使用[i]於循環在元素指向讓我無法識別的表達
我有一個數組單選按鈕
<div id="xrowcont_0">
<input type="radio" name="13_641" value="a" id="13_641_form_a" ><label for="13_641_form_a"><span></span></label>
<input type="radio" name="13_641" value="b" id="13_641_form_b" checked="checked"><label for="13_641_form_b"><span></span></label>
<div id="xmod_mach_list_0" style="display:none;">BOO1</div>
</div>
<div id="xrowcont_1">
<input type="radio" name="13_642" value="a" id="13_642_form_a"><label for="13_642_form_a"><span></span></label>
<input type="radio" name="13_642" value="b" id="13_642_form_b"><label for="13_642_form_b"><span></span></label>
<div id="xmod_mach_list_1" style="display:none;">BOO2</div>
</div>
... ++++
這個想法是,當你在<div id="xrowcont_0">
選擇單選框「B」,它取消隱藏<div id="xmod_mach_list_1"
每一行的旁邊。
這裏是JS:
比方說我們有13行...
for (var i=0;i<13;i++) {
var a1 = "'#xrowcont_" + [i] + " input[type=radio]'";
var a2 = "'#xrowcont_" + [i] + " input:checked'";
console.log(a1);
console.log(a2); // these show up just fine.
$(a1).on("click", function() { // but here it breaks.
var state = $(a2).val();
if (state == "b") {
$('#xmod_mach_list_' + [i]).css('opacity',0).show().animate({ opacity: 1 }, 300);
console.log("Show Button");
} else {
$('#xmod_mach_list_' + [i]).animate({ opacity: 0} , 200);
setTimeout(function() {$('#xmod_mach_list_' + [i]).hide(); }, 200);
console.log("Hide Button");
};
});
}
它給我Uncaught Error: Syntax error, unrecognized expression: '#xrowcont_0 input[type=radio]'
,儘管這是我想在... $(a1).on("click", function() {...
中填充等部分是什麼。
我該如何解決這個問題?
不宜'radio'用引號'A1封閉'? – Renan
@Ranan它不需要;如果屬性值包含空格(或者如果您想避免轉義特殊字符),您只能*將其包含在雙引號中。 –
括號或沒有括號,它不怕:/。如果我只是把a1 =「'#xrowcont_0 input [type = radio]'」,腳本就可以工作。所以是... –