Javascript通过文本设置dropdownlist的选定值
我使用Jquery数据表进行内联编辑。我有一个硬编码的下拉列表,它是为每一行动态创建的Javascript通过文本设置dropdownlist的选定值,javascript,jquery,datatables,Javascript,Jquery,Datatables,我使用Jquery数据表进行内联编辑。我有一个硬编码的下拉列表,它是为每一行动态创建的 <select class="form-control edit-mode" id="Status"> <option>A</option> <option>B</option> <option>C</option> </select> 我想设置的值在它旁边的标签中。因此,我通过以下方法得到该值: var sta
<select class="form-control edit-mode" id="Status">
<option>A</option>
<option>B</option>
<option>C</option>
</select>
我想设置的值在它旁边的标签中。因此,我通过以下方法得到该值:
var stat = tr.find('#lbl_Status').html();
那么,如何将dropdownlist的选定值设置为stat变量呢
我尝试过使用在Stackoverflow上找到的其他解决方案,但它们不起作用,因为我似乎无法获得整个元素或其他内容。因为.length在status元素上不起作用。我不能使用普通的document.getElementById方法,因为它可以是具有相同ID的多个选择列表
使用此解决方案的F.ex:
$(document).on("click", ".edit-action", function (e) {
var tr = $(this).parents('tr:first');
var stat = tr.find('#lbl_Status').html();
var status = tr.find('#Status');
for (var i = 0; i < status.options.length; i++) {
if (status.options[i].text === stat) {
status.selectedIndex = i;
break;
}
}
});
$(文档)。在(“单击”,“编辑操作”,功能(e){
var tr=$(this.parents('tr:first');
var stat=tr.find('lbl_Status').html();
var status=tr.find('#status');
对于(变量i=0;i
I get:Uncaught TypeError:无法读取未定义的属性“length”状态为jquery对象,请使用:
status.find('option').length;
或转换为javascript对象并使用:
status[0].options.length
我解决这个问题的方法是使用这一行而不是整个for循环
status.find("option:contains("+ stat +")").attr('selected', true);
感谢您指出是Jquery对象导致了我的答案:)
status.find("option:contains("+ stat +")").attr('selected', true);