jQuery获取选定的选项值(不是文本,而是属性的值)

好的,我有这个代码:

<select name="selector" id="selector"> <option value="1">Option 1</option> <option value="2">Option 2</option> </select> 

我想获得select的选项的价值。 例如:select“选项2”,其值为“2”。 '2'是我需要得到的价值,而不是'选项2'。

使用.val来获取所选选项的值。 见下文,

 $('select[name=selector]').val() 

我只是想分享我的经验,我的名声还不足以发表评论。

为了我,

$('#selectorId').val()

返回null。

我不得不使用

$('#selectorId option:selected').val()

 $('select').change(function() { console.log($(this).val()) });​ 

jsFiddle的例子

.val()将获得该值。

你需要添加一个ID到你的select。 然后:
$('#selectorID').val()

你可以使用jquery如下

脚本

  $('#IDOfyourdropdown').change(function(){ alert($(this).val()); }); 

FIDDLE在这里

对于这样的select

 <select class="btn btn-info pull-right" id="list-name" style="width: auto;"> <option id="0">CHOOSE AN OPTION</option> <option id="127">John Doe</option> <option id="129" selected>Jane Doe</option> 

…你可以通过这种方式得到id:

 $('#list-name option:selected').attr('id'); 

或者,您可以使用价值,并以简单的方式得到它…

 <select class="btn btn-info pull-right" id="list-name" style="width: auto;"> <option value="0">CHOOSE AN OPTION</option> <option value="127">John Doe</option> <option value="129" selected>Jane Doe</option> 

喜欢这个:

 $('#list-name').val(); 

我的一个选项没有值: <option>-----</option> 。 我试图使用if (!$(this).val()) { .. }但是我得到了奇怪的结果。 原来,如果你的<option>元素没有value属性,它会返回里面的文本而不是空string。 如果你不想让val()为你的选项返回任何东西,确保添加value=""

尝试这个:

 $(document).ready(function(){ var data= $('select').find('option:selected').val(); }); 

要么

 var data= $('select').find('option:selected').text(); 

看看这个例子:

  <select class="element select small" id="account_name" name="account_name"> <option value="" selected="selected">Please Select</option> <option value="paypal" >Paypal</option> <option value="webmoney" >Webmoney</option> </select> <script type="text/javascript"> $(document).ready(function(){ $('#account_name').change(function(){ alert($(this).val()); }); }); </script> 
 $('#selectorID').val(); 

要么

 $('select[name=selector]').val(); 

要么

 $('.class_nam').val();