[英]Set selected option to multiple select jquery
大家好,這是我的示例代碼:
的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>
腳本
var indexDropDown = ["A","B","C"];
for (var i = 0; i < indexDropDown.length; i++) {
$("#dropdown"+indexDropDown[i]+" option[value="+i+"]").attr('selected','selected');
}
我希望在下拉列表A中選擇1,在下拉列表B中選擇2,在下拉列表C中選擇3,但是什么也不會發生。 錯誤在哪里? 這是小提琴
提前致謝!
三件事:
1)您使用了:
而不是;
聲明數組indexDropDown
2)您使用了從零開始的索引器來遍歷數組,而值以1開頭; 因此在循環時向i
加1
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');
}
試試這個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');
}
參見工作示例:-
嘿,以前是您代碼中的錯誤
var indexDropDown = ["A","B","C"];
for (var i = 0; i < indexDropDown.length; i++) {
$("#dropdown"+indexDropDown[i]+" option[value="+i+"]").attr('selected','selected');
}
您應用了“:”而不是“;” 我想現在可以了
兩件事情:
您的第一行以:
結尾,而不是;
,因此未分配數組值。
您的for循環是0-index,但是要分配的值是1,2和3。對於i = 0,您需要value = 1,對於i = 1,value = 2,對於i = 2,value = 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錯誤。
您已經用引起語法錯誤的冒號結束了第一行。
除此之外,您的<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');
}
這是一個小提琴 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.