val()没有返回值我用val()设置

时间:2013-01-09 12:58:29

标签: jquery

我有一个功能:

$("#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>

1 个答案:

答案 0 :(得分:3)

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

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

如果你做$("#action_box").val("1");,你会有更多的成功。

假设您正在尝试选择文本上下文为“uptodate”的元素,那么假设您没有使用label attribute,那么您可以使用它;

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

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

$(this).find('option').filter(function () {
    return $(this).text() === "uptodate";   
}).prop('selected', true);