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

下列守则适用:

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

如何将第二行重构为:

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

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

209128 次浏览
 $(this).find('option:selected').text();

这应该会奏效:

$(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:

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

Http://api.jquery.com/find/

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

If you need the selected option element, $("option:selected", this)

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

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

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

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

最佳猜测:

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 足够聪明,知道你需要什么