基于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;
所以我被卡住了,因为我不知道如何选择我的选择。你有什么想法我能解决这个问题吗? 谢谢!
P.S。:当我在Google Chrome中尝试第二种可能性时,效果非常好。
问候,约瑟夫
答案 0 :(得分:0)
var opts = {
success: function(data)
{
//do everything here first before appending it,
//including adding event bindings
}
}
$.ajax(opts)
答案 1 :(得分:0)
使用prop
代替attr
:
$('#mySelectElementOption_' + id).prop('selected', true);
或
$('#mySelect').val($('#mySelectElementOption_' + id).val());
答案 2 :(得分:0)
试试这个:
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中找到没有&#39;可交互的&#39;的任何选项元素。类。
然后它会禁用它:.attr("disabled","disabled");
尝试一下: jsBin
修改强>
$("#mySelectElement .interactable:first").prop('selected', true);