![](/img/trans.png)
[英]Unable to dynamically set the selected option for my select list using jQuery
[英]Set selected option to multiple list using jQuery
我有一個DB列表,顯示在選擇多個標簽中:
<select multiple="multiple" id="list" name="color"> <option value="1">Red</option> <option value="2">Green</option> <option value="3">Blue</option> <option value="4">Magenta</option> <option value="5">Black</option> <option value="6">Cyan</option> <option value="7">Yellow</option> </select>
給定來自DB的值數組,需要僅選擇在DB數組中找到的那些項,例如[2,4,7]。 如何使用jQuery, attr('selected')
推送這些選項標簽?
<select multiple="multiple" id="list" name="color"> <option value="1">Red</option> <option value="2" selected="selected">Green</option> <option value="3">Blue</option> <option value="4" selected="selected">Magenta</option> <option value="5">Black</option> <option value="6">Cyan</option> <option value="7" selected="selected">Yellow</option> </select>
像上面一樣。
您只需使用.val()
方法來實現:
$('#list').val([2,4,7]);
$('#list').val([2,4,7]);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select multiple="multiple" id="list" name="color"> <option value="1">Red</option> <option value="2">Green</option> <option value="3">Blue</option> <option value="4">Magenta</option> <option value="5">Black</option> <option value="6">Cyan</option> <option value="7">Yellow</option> </select>
為了完整起見,我想我會添加一個簡單的JavaScript解決方案。
這是我提出的,使用數組,循環, document.querySelector
和setAttribute
:
var preSelected = [2,4,7]; for (var i = 0; i < preSelected.length; i++) { var option = document.querySelector('#list option[value="' + preSelected[i] + '"]'); option.setAttribute('selected','selected'); }
<select multiple="multiple" id="list" name="color"> <option value="1">Red</option> <option value="2">Green</option> <option value="3">Blue</option> <option value="4">Magenta</option> <option value="5">Black</option> <option value="6">Cyan</option> <option value="7">Yellow</option> </select>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.