Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript通过文本设置dropdownlist的选定值_Javascript_Jquery_Datatables - Fatal编程技术网

Javascript通过文本设置dropdownlist的选定值

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

我使用Jquery数据表进行内联编辑。我有一个硬编码的下拉列表,它是为每一行动态创建的

<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);