jQuery定位正确的单选按钮没有响应

时间:2010-06-23 18:04:22

标签: javascript jquery html radio-button

我有一个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');

我希望有人可以告诉我什么是错的。我想针对正确的无线电输入。如果我只定位值,我可以看到一个案例,可能有两个单独的集合,带有是/否值。感谢。

1 个答案:

答案 0 :(得分:2)

你正在为一个数组做一个for / in。这有时会导致问题。

由于您指定了命名键,因此应使用对象:

var selected_options = {};

var selected_options = new Object();

测试示例: http://jsfiddle.net/Ds3s8/