HTML
<select id="selectDepartment">
<option value="1">120</option>
<option value="2">20</option>
<option value="3">140</option>
<option value="4">4120</option>
<option value="5">560</option>
<option value="6">451</option>
<option value="7">310</option>
<option value="8">656</option>
<option value="9">444</option>
<option value="10">555</option>
<option value="11">2560</option>
<option value="12">450</option>
</select>
的jQuery
$("#selectDepartment").change( function() {
alert($("select option:selected").val());
});
当我选择任何一个选项
时,上述功能在警报时始终显示值 1答案 0 :(得分:5)
您找到选择选项的方法很模糊。你说的是“抓住所有<select>
s”。然后,您继续从每个选项中获取:select
ed选项(页面上的所有<select>
)。接下来,.val()
将第一个值从顶部取下。
简而言之,您始终会获取页面上找到的 first <select>
的选定值。假设#selectDepartment
不是第一个<select>
,则您的值永远不会改变。
尝试使用<Select>
this
范围内
$('#selectDepartment').change(function(){
var selopt = $('option:selected',this);
});
请注意,我将范围指定为触发<select>
的{{1}}。另请注意,这并不是必需的,因为.change()
同样容易:
val()
让jQuery做繁重的工作。如果你想控制特定元素的样式,或者你正在使用多选并希望获得更多控制,那么你真的只需要var selopt = $(this).val();
。
答案 1 :(得分:0)
您可以这样做:
$("#selectDepartment").change( function() {
var selected = $(this).find(":selected");
});