簡體   English   中英

將選擇的選項設置為多選jQuery

[英]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');
}   

參見工作示例:-

http://jsfiddle.net/L7S37/7/

嘿,以前是您代碼中的錯誤

var indexDropDown = ["A","B","C"];
for (var i = 0; i < indexDropDown.length; i++) {
    $("#dropdown"+indexDropDown[i]+"  option[value="+i+"]").attr('selected','selected');
    }   

您應用了“:”而不是“;” 我想現在可以了

兩件事情:

  1. 您的第一行以:結尾,而不是; ,因此未分配數組值。

  2. 您的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM