下列守则适用:
$("#select-id").change(function(){ var cur_value = $('#select-id option:selected').text(); . . . });
如何将第二行重构为:
var cur_value = $(this).***option-selected***.text();
你用什么做 ***option-selected***?
***option-selected***
$(this).find('option:selected').text();
这应该会奏效:
var cur_value = $(this).find('option:selected').text();
Since option is likely to be immediate child of select you can also use:
option
select
var cur_value = $(this).children('option:selected').text();
Http://api.jquery.com/find/
对于选定的值: $(this).val()
$(this).val()
If you need the selected option element, $("option:selected", this)
$("option:selected", this)
您可以使用 find来查找所选择的选项,该选项是当前 jQuery 对象指向的节点的后代:
find
由于这可能是一个直接的孩子,我实际上建议使用 .children代替:
.children
最佳猜测:
var cur_value = $('#select-id').children('option:selected').text();
在这种情况下,我更喜欢孩子,因为您知道在 DOM 树中只有一个分支..。
在我看来,下拉列表中的 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(); });
var cur_value = $('option:selected',this).text();
只是
$(this).val();
我认为 jQuery 足够聪明,知道你需要什么