3

当我输入$('select[id*=lstAdvGradYear]')chrome 给我

<select name="Views\ContentArea$ctl00$lstAdvGradYear" id="Views\ContentArea_ctl00_lstAdvGradYear" class="ddReplace" style="display: none; ">
    <option value="2016">2016</option>
    <option value="2015">2015</option>
    <option value="2014">2014</option>
    <option selected="selected" value="2013">2013</option>
    <option value="2012">2012</option>

</select>

当我键入$('select[id*=lstAdvGradYear]').val()chrome 回复时"2016"

当我输入$('select[id*=lstAdvGradYear] option:selected ').val()chrome 时也会回复"2016"

当我键入$('select[id*=lstAdvGradYear] option:selected')chrome 回复时[<option value="2016">2016</option>]

我究竟做错了什么?

我已验证没有其他名称相似的下拉菜单


编辑:要清楚,我的问题是.val()应该返回 2013 而不是 2016

4

1 回答 1

3

这是因为在前两种情况下,您调用了 $.val() 函数,但在最后一种情况下,您没有。

$.val() 返回 HTML 元素的值。$() 返回一个代表一个或多个 html 元素的对象,您可以调用许多方法,包括 $.val()

更新:似乎根据文档(http://api.jquery.com/attribute-contains-selector/),右边的id*=值应该用引号引起来。这有什么区别吗?

于 2012-05-22T18:52:42.277 回答