以下代码有效:
$("#select-id").change(function(){
var cur_value = $('#select-id option:selected').text();
. . .
});
如何将第二行重构为:
var cur_value = $(this).***option-selected***.text();
你有什么用***option-selected***
?
以下代码有效:
$("#select-id").change(function(){
var cur_value = $('#select-id option:selected').text();
. . .
});
如何将第二行重构为:
var cur_value = $(this).***option-selected***.text();
你有什么用***option-selected***
?
对于选定的值:$(this).val()
如果您需要选定的选项元素,$("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();
这应该有效:
$(this).find('option:selected').text();
您可以使用它find
来查找当前 jQuery 对象指向的节点的后代的选定选项:
var cur_value = $(this).find('option:selected').text();
由于这可能是直接的孩子,我实际上建议使用.children
:
var cur_value = $(this).children('option:selected').text();
var cur_value = $(this).find('option:selected').text();
由于option
很可能是select
您的直系子女,因此也可以使用:
var cur_value = $(this).children('option:selected').text();
最佳的揣测:
var cur_value = $('#select-id').children('option:selected').text();
在这种情况下,我更喜欢孩子,因为你知道你只会沿着 DOM 树走一个分支......
只是
$(this).val();
我认为 jQuery 足够聪明,知道你需要什么