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

32 浏览
0 Comments

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

下面的代码是可以正常工作的:

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

如何重构第二行代码为:

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

***option-selected***中你应该使用什么?

0
0 Comments

问题的原因是使用$(this).find('option:selected').text();无法获取到选中的选项文本。解决方法是改用$("option:selected", this)来获取选中的选项文本。原作者尝试了前一种方法,但遇到了问题:在使用按钮点击事件将选中的选项文本追加到另一个div时,按钮点击实际上改变了选中的元素,这很奇怪。所以原作者建议使用后一种方法来解决这个问题。

0
0 Comments

问题的原因是希望在下拉菜单的onchange事件中获取所选选项的值。解决方法是使用jQuery的选项选择器来获取选中的选项。

以下是解决方法的具体步骤:

1. 使用下面的代码来获取选中的选项:

$('option:selected',this);

2. 使用以下代码来获取选项的value属性:

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

3. 使用以下代码来获取选项标签之间显示的文本内容:

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

在例子中,可以这样使用:

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

不要使用.context属性,因为它在jQuery 1.10版本中已经被弃用。可以参考这里了解更多信息:[api.jquery.com/category/deprecated/deprecated-1.10](http://api.jquery.com/category/deprecated/deprecated-1.10)

最后,虽然我喜欢这个答案,但是为什么它是最好的解决方法呢?

0
0 Comments

问题的原因是需要获取被选中的选项的值和元素。解决方法是使用jQuery选择器来获取被选中的选项。

要获取被选中的值,可以使用$(this).val()

如果需要获取被选中的选项元素,可以使用$("option:selected", this)

这个选择器返回一个jQuery对象,所以可以使用.text()来获取选项元素的文本内容,即$("option:selected", this).text()

0