选择刚刚附加了jquery的选项
基于AJAX查询,我将一些选项附加到列表中。
for(var i = 0; i < options.length; i++) { var data = options[i]; var option = $('' + data['value'] + ''); $('#mySelectElement').append(option); }
现在,当用户在页面上进行交互时,我想选择刚刚添加的选项,我尝试了以下内容(这两种可能性对我来说都不起作用):
$('#mySelectElementOption_' + id).attr('selected', 'selected');
和
var option = document.getElementById('mySelectElementOption_' + id); option.selected = true;
所以我卡住了,因为我不知道如何选择我的选择。 你有什么想法我能解决这个问题吗? 谢谢!
PS:当我在Google Chrome中尝试第二种可能性时,它可以完美运行。
问候,约瑟夫
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:
JS Bin
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 = $(''); $('#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);
试试看