Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我的jquery val()没有从我的选择框中选择实际选定的值?_Javascript_Jquery - Fatal编程技术网

Javascript 为什么我的jquery val()没有从我的选择框中选择实际选定的值?

Javascript 为什么我的jquery val()没有从我的选择框中选择实际选定的值?,javascript,jquery,Javascript,Jquery,当我键入$('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> <

当我键入
$('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>

2016
2015
2014
2013
2012
当我键入
$('select[id*=lstAdvGradYear]')。val()
chrome会回复
“2016”

当我键入
$('select[id*=lstAdvGradYear]option:selected')。val()
chrome还会回复
“2016”

当我键入
$('select[id*=lstAdvGradYear]option:selected')
chrome回复
[2016]

我做错了什么

我已验证没有其他具有类似名称的下拉列表



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

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

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


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

它显示了2013年。你使用什么版本的jquery?嗯?我试图弄明白为什么val()不给我2013,因为它是选定的元素。我知道val()和不使用val()的区别。我很抱歉。我删除了我的评论,因为我不明白你在问什么。在重读之后,我意识到我的回答与以前完全不同。我已经为您更新了我的回答,并提供了更多信息。这与不使用val()无关。我的问题是Val()返回的值不正确,它应该返回2013而不是2016,因为2013是所选选项。最初,我也感到困惑。他说他们都返回“2016”,但他的HTML显示“2013”被选中。这不是获取val或element的问题,而是获取错误的val/element。您的更新是正确的,用引号将其固定。谢谢你,我在发抖
[attr=val]
如果只使用字母或不使用特殊字符,并不总是需要引号。值得注意的是,如果由于多个
selected=“selected”
元素而从
val()
获取错误的
选项
元素值,则会发生类似问题。