使用jQuery设置Select Dropdown

时间:2012-01-12 03:56:58

标签: javascript jquery

这个问题已被多次询问,但这不是重复。我正在使用for循环来搜索包含select,input等元素的div。它将类名称与objects参数匹配,如果匹配则设置元素的值。

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

它在输入元素上工作正常,但是使用select元素会删除所有选项,只需在实际元素标记上设置值。

这是我运行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()应该为匹配的选项标签设置。对象值和选项标签是匹配的,但它没有做它应该做的事情。我在这里做错了什么?

结果我得到了DIV,我试图克隆嵌套在HTML中的错误位置以及javascript中的错误克隆调用。完全不相关的错误。下面的答案是正确的,它只是在我的情况下不起作用,因为我不明白我遇到的问题。

1 个答案:

答案 0 :(得分:0)

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

无效。选择内部需要option个标签


这是您的代码的工作版本:

DEMO

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