使用jQuery设置Select Dropdown

Set Select Dropdown with jQuery

本文关键字:Dropdown Select 设置 jQuery 使用      更新时间:2023-09-26

这个问题已经被问了多次,但这不是重复。我使用for循环来搜索元素的div,包括select、input等。它将类名与对象参数匹配,如果匹配,则设置元素的值。

for(var i in obj) {
    if(obj.hasOwnProperty(i)) {
        $(editClone).find('.' +i).val(obj[i]);
    }
}

它在输入元素上运行良好,但在选择元素时,它会删除所有选项,并简单地在实际元素标记上设置值。

这是在我运行javascript:之前的select语句

<select class="type">
    <option value="Home">Home</option>
    <option value="Work">Work</option>
    <option value="Mobile">Mobile</option>
    <option value="Other">Other</option>
</select>

在我运行代码后(在firebug中检查以进行验证):

<select class="type">Mobile</select>

它为什么要这样做?我认为val()应该将匹配的选项标记设置为selected。对象值和选项标记是匹配的,但它没有按预期操作。我做错了什么?

原来我试图克隆的DIV嵌套在HTML中的错误位置,并且在javascript中有一个错误的克隆调用。完全无关的错误。下面的答案是正确的,只是在我的情况下不起作用,因为我不理解我遇到的问题

<select class="type">Mobile</select>

无效。选择需要在中包含option标签


以下是您代码的工作版本:

演示

<select class="type">
    <option value="0">0</option>
    <option value="A">A</option>
</select>

脚本:

$(function() {
    var obj = { type: "A" };
    var editClone = $(document);
    for(var i in obj) {
        if(obj.hasOwnProperty(i)) {
            $(editClone).find('.' + i).val(obj[i]);
        }
    }
});