-1

我有一个功能:

$("#action_box").val("uptodate");
var myVal = $("#action_box").val();
alert(myVal); 

警报的输出为 0。你能指出我的错误吗?

编辑:很抱歉没有提及有关 action_box 元素的任何内容。

<select name="action_box" id="action_box" style="vertical-align:top;">
    <option value="0">{{$l.opt1}}</option>
    <option value="1">{{$l.opt2}}</option>
    ...
</select>
4

1 回答 1

3

您正在尝试将<select>元素的选定选项设置为不存在的选项(不存在的值为uptodate)。

因此val("uptodate")被有效地忽略,val()返回与之前相同的值。

如果你这样做了$("#action_box").val("1");,你会取得更大的成功。

假设您正在尝试选择文本上下文为“最新”的元素,前提是您没有使用可以使用的label属性

$('#action_box').find('option[label="uptodate"]').prop('selected', true);

但是,如果您正在使用label,则可以使用该filter()方法,如评论中所述;

$(this).find('option').filter(function () {
    return $(this).text() === "uptodate";   
}).prop('selected', true);
于 2013-01-09T13:14:18.363 回答