[英]select option which were just appended with jquery
基於AJAX查詢,我在列表中附加了一些選項。
for(var i = 0; i < options.length; i++) {
var data = options[i];
var option = $('<option id="mySelectElementOption_' + data['id'] + '" value="' + data['value'] + '">' + data['value'] + '</option>');
$('#mySelectElement').append(option);
}
現在,當用戶在頁面上進行交互時,我想選擇剛剛添加的選項,然后嘗試以下操作(兩種可能性均不適用於我):
$('#mySelectElementOption_' + id).attr('selected', 'selected');
和
var option = document.getElementById('mySelectElementOption_' + id);
option.selected = true;
所以我被卡住了,因為我不知道如何選擇我的選項。 您有任何想法我可以解決這個問題嗎? 謝謝!
PS:當我嘗試在谷歌瀏覽器中嘗試第二種方法時,它可以完美運行。
問候,約瑟夫
var opts = {
success: function(data)
{
//do everything here first before appending it,
//including adding event bindings
}
}
$.ajax(opts)
使用prop
而不是attr
:
$('#mySelectElementOption_' + id).prop('selected', true);
要么
$('#mySelect').val($('#mySelectElementOption_' + id).val());
嘗試這個:
HTML:
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
<select id="mySelectElement">
<option id="oldoption" >Old option</option>
</select>
</body>
</html>
JS:
//demo data
options = [{id:0, value:"aaa"},{id:1, value:"bbb"},{id:2, value:"ccc"}];
for(var i = 0; i < options.length; i++) {
var data = options[i];
var option = $('<option id="mySelectElementOption_' + data['id'] + '" class="interactable" value="' + data['value'] + '">' + data['value'] + '</option>');
$('#mySelectElement').append(option);
}
//This is what you need:
$("#mySelectElement :not([class])").attr("disabled","disabled");
說明:
$("#mySelectElement :not([class=interactable])")
-這告訴jquery在#mySelectElement中查找沒有'interactable'類的任何選項元素。
然后禁用它: .attr("disabled","disabled");
試試看: jsBin
編輯:
$("#mySelectElement .interactable:first").prop('selected', true);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.