我有一个功能:
$("#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>
答案 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);