以下代码有效:
$("#select-id").change(function(){
var cur_value = $('#select-id option:selected').text();
. . .
});
如何将第二行重构为:
var cur_value = $(this).***option-selected***.text();
您对***option-selected***
使用了什么?
答案 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();
答案 7 :(得分:0)
最佳猜测:
var cur_value = $('#select-id').children('option:selected').text();
在这种情况下,我更喜欢孩子,因为你知道你只是沿着DOM树走了一个分支......
答案 8 :(得分:0)
就是
$(this).val();
我认为jQuery很聪明,足以知道您的需求