我有一个JavaScript数组,其中包含要检查的无线电的名称和值。
jQuery(window).load(function(){
var selected_options = new Array();
selected_options['swing_type'] = 'Slide';
var x;
for (x in selected_options){
jQuery("#menu input[name="+ x +"][value="+ selected_options[x] +"]").attr('checked', 'checked');
}
});
而html具有以下内容:
<td>
<input type="radio" id="swing" name="swing_type" value="Swing" /><label for="swing"> Swing</label><br />
<input type="radio" id="slide" name="swing_type" value="Slide" /><label for="slide"> Slide</label>
</td>
当我运行此脚本时,浏览器无响应。我尝试了几种变体,以下两种有效:
jQuery("#menu input[value="+ selected_options[x] +"]").attr('checked', 'checked');
jQuery("#menu input[name=swing_type][value=Swing]").attr('checked', 'checked');
以下无效:
jQuery("#menu input[name=swing_type][value="+ selected_options[x] +"]").attr('checked', 'checked');
我希望有人能启发我什么地方出了问题。我想定位正确的无线电输入。如果仅将值作为目标,则可能会出现两种情况,其中可能存在两个分别为“是/否”值的集合。谢谢。
最佳答案
您正在为数组做一个for / in。这有时会引起问题。
由于指定的是命名键,因此应改用一个对象:
var selected_options = {};
要么
var selected_options = new Object();
测试示例:http://jsfiddle.net/Ds3s8/