如何在jQuery中获得$(this)选择的选项?

时间:2012-04-04 13:10:37

标签: javascript jquery

以下代码有效:

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

如何将第二行重构为:

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

您对***option-selected***使用了什么?

9 个答案:

答案 0 :(得分:105)

对于所选值:$(this).val()

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

答案 1 :(得分:87)

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

答案 2 :(得分:43)

我认为最佳和最短的方式是在下拉列表上的onchange事件中获取所选的选项:

$('option:selected',this);

获取value属性:

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

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

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

在您的样本中:

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

答案 3 :(得分:29)

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

答案 4 :(得分:10)

这应该有效:

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

答案 5 :(得分:8)

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

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

由于这可能是一个直接的孩子,我实际上建议改为使用.children

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

答案 6 :(得分:7)

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

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

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

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

答案 7 :(得分:0)

最佳猜测:

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

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

答案 8 :(得分:0)

就是

$(this).val();

我认为jQuery很聪明,足以知道您的需求