选择dropdownlist项jquery的值

时间:2012-04-17 18:32:00

标签: javascript jquery html drop-down-menu

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

2 个答案:

答案 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");

});