jquery - 动态更改选项文本无效

时间:2016-03-22 06:53:24

标签: javascript jquery html html-select

请找到jsfiddle

https://jsfiddle.net/qs008so7/

我在html中有一个选项框,我正在尝试使用jquery设置选项。 但它不起作用。请找到以下代码。

如果我在控制台中调用代码,我能够看到预期的html被返回。 意味着,更改会在DOM中受到适当影响,但不会反映在UI中。。你可以看到我的jfiddle。

HTML:

<select class="form-control" name="test" id="test">
    <option value="0">Disabled</option>
    <option value="1">Enabled</option>
</select>

JS:

setGivenOption(test,"Enabled");
setGivenOption(test,"Disabled");

function setGivenOption(elementId, option) {
    //Make all the old selections to null
    $(elementId).each(function () {
        $('option', this).each(function () {
            $(this).attr('selected', null);
        });
    });
    //set the given option
    $(elementId).find(">option:contains('" + option + "')").attr("selected", "selected");
}

感谢。

2 个答案:

答案 0 :(得分:1)

你几乎就在那里:试试这个https://jsfiddle.net/q5886d5o/1/

@ Chips_100评论后

更新

setGivenOption("test","Disabled");
setGivenOption("test","Enabled");

function setGivenOption(elementId, option) {
    //Make all the old selections to null
    $('#' + elementId).children('option').each(function () {
       $(this).attr('selected', null);
    });
    //set the given option
    $('#' + elementId).children("option:contains('" + option + "')").attr("selected", "selected");
}

答案 1 :(得分:1)

简单地

$(elementId).find('option:contains(' + option + ')').attr('selected', true);

这将取消选择的任何内容并选择新的option