如何获得$(这个)在jQuery中select的选项?

以下代码工作:

$("#select-id").change(function(){ var cur_value = $('#select-id option:selected').text(); . . . }); 

如何重构第二行:

 var cur_value = $(this).***option-selected***.text(); 

你用什么***option-selected***

对于选定的值: $(this).val()

如果你需要select的选项元素, $("option:selected", this)

  $(this).find('option:selected').text(); 

在我看来,最好的和最短的方式在下拉菜单上的onchange事件获得选定的选项:

 $('option:selected',this); 

获取值属性:

 $('option:selected',this).attr('value'); 

获取标签之间的显示部分:

 $('option:selected',this).text(); 

在你的示例中:

 $("#select-id").change(function(){ var cur_value = $('option:selected',this).text(); }); 
 var cur_value = $('option:selected',this).text(); 

您可以使用find来查找所选的选项,该选项是当前jQuery对象所指向的节点的后代:

 var cur_value = $(this).find('option:selected').text(); 

由于这可能是一个直接的孩子,我实际上build议使用.children来代替:

 var cur_value = $(this).children('option:selected').text(); 

这应该工作:

 $(this).find('option:selected').text(); 
 var cur_value = $(this).find('option:selected').text(); 

由于option可能是select直接孩子,你也可以使用:

 var cur_value = $(this).children('option:selected').text(); 

http://api.jquery.com/find/

最佳的揣测:

 var cur_value = $('#select-id').children('option:selected').text(); 

在这种情况下,我更喜欢孩子们,因为你知道你只能沿着DOM树走一个分支。