大家好,我的示例代码:
HTML
<select id="dropdownA">
<option val="1">1</option>
<option val="2">2</option>
<option val="3">3</option>
</select>
<select id="dropdownB">
<option val="1">1</option>
<option val="2">2</option>
<option val="3">3</option>
</select>
<select id="dropdownC">
<option val="1">1</option>
<option val="2">2</option>
<option val="3">3</option>
</select>
SCRIPT
var indexDropDown = ["A","B","C"];
for (var i = 0; i < indexDropDown.length; i++) {
$("#dropdown"+indexDropDown[i]+" option[value="+i+"]").attr('selected','selected');
}
我希望在下拉列表A中选择1,在下拉列表中选择2,在下拉列表中选择3,但没有任何反应。错误在哪里? 这是fiddle
提前致谢!
答案 0 :(得分:1)
三件事:
1)在声明数组:
后,您使用了;
而不是indexDropDown
2)你使用一个从零开始的索引器来遍历数组,而值以1开始;因此,当循环
时,将{1}添加到i
3)您更新了value
属性,而在html中您使用了val
属性,因此请更新一个而不是value
var indexDropDown = ["A","B","C"];
for (var i = 0; i < indexDropDown.length; i++) {
$("#dropdown"+indexDropDown[i]+" option[val="+(i+1)+"]").attr('selected','selected');
}
<强> FIDDLE 强>
答案 1 :(得分:1)
试试这个jquery代码: -
$("select").each(function(i, sel) {
$(sel).find("option:eq(" + i + ")").attr('selected', 'selected');
});
在上面的示例中,您不需要数组...
工作示例: - http://jsfiddle.net/L7S37/12/
如果您仍想使用自己的代码,请使用下面给出的代码......
代码: -
var indexDropDown = ["A","B","C"];
for (var i = 0; i < indexDropDown.length; i++) {
$("#dropdown"+indexDropDown[i]).find("option[val="+(i+1)+"]").attr('selected','selected');
}
参见工作示例: -
答案 2 :(得分:0)
嘿,早些时候你的代码是错误的
var indexDropDown = ["A","B","C"];
for (var i = 0; i < indexDropDown.length; i++) {
$("#dropdown"+indexDropDown[i]+" option[value="+i+"]").attr('selected','selected');
}
您已申请&#34;:&#34;而不是&#34;;&#34;我想现在它会起作用
答案 3 :(得分:0)
两件事:
您的第一行以:
而不是;
结尾,因此未分配数组值。
你的for循环是0索引,但你要分配的值是1,2和3.对于i = 0,你需要value = 1,i = 1,value = 2,对于i = 2,值= 3。
更新代码:
var indexDropDown = ["A","B","C"];
for (var i = 0; i < indexDropDown.length; i++) {
$("#dropdown"+indexDropDown[i]+" option[val="+(i+1)+"]").attr('selected','selected');
}
一个有用的提示:在运行脚本时检查浏览器控制台。这就是我找到:
的方式。只是阅读脚本很容易错过。在Chrome中,点击F12
并点击console
即可查看您所在网页上的javascript错误。
答案 4 :(得分:0)
你用冒号结束第一行会导致语法错误。
除此之外,您的<option>
代码还有val
个属性,而不是value
个属性。
最后,因为你从0迭代到2,并且你的值从1到3列出,所以在选择元素时你需要使用i+1
。
要实现您想要的行为,您可以更正属性并对JavaScript进行一些小的更改。
var indexDropDown = ["A","B","C"];
for (var i = 0; i < indexDropDown.length; i++) {
$("#dropdown"+indexDropDown[i]+" option[value="+(i+1)+"]").attr('selected','selected');
}
这是fiddle。