下面的代码工作:
$("#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).find('option:selected').text();
这应该工作:
$(this).find('option:selected').text();
与上面相同的答案 – 2017-12-05 19:10:04
var cur_value = $(this).find('option:selected').text();
由于option
很可能是select
直接孩子,你还可以使用:
var cur_value = $(this).children('option:selected').text();
你从哪里得到'选项选择'没有引号......? – 2012-04-04 13:14:28
选项减去选中? – 2012-04-04 13:16:23
这是我发布时的错字。更正了答案。 – thomthom 2012-04-04 13:17:10
对于选定的值:$(this).val()
如果需要选择的选项元素,$("option:selected", this)
解决了我的问题,谢谢@jorgebg – aiffin 2018-02-06 11:36:04
您可以使用find
寻找那些为节点(S)的后代所选择的选项由当前的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树好......我的意见电平变化
最佳和最简单的办法在下拉事件来获得所选择的选项:
$('option:selected',this);
来获取值属性:
$('option:selected',this).attr('value');
获得标签的显示部分:
$('option:selected',this).text();
在您的样本:
$("#select-id").change(function(){
var cur_value = $('option:selected',this).text();
});
请勿使用'.context',因为它已被弃用jQuery的1.10 - http://api.jquery.com/category/deprecated/deprecated-1.10/ – rafx 2015-03-10 15:57:31
是的,但你的意思是这样的: http://api.jquery.com/context/ $( “ul”,document.body).context.nodeName 我不喜欢使用 – angelmedia 2015-03-12 06:15:27
我喜欢这个答案,但为什么最好? – 2016-10-10 14:06:29
var cur_value = $('option:selected',this).text();
虽然这可能在理论上回答这个问题,[这将是更可取的](/ meta.stackoverflow.com/q/8259)包括答案的重要部分在这里,并提供参考。 – manetsus 2016-04-03 03:32:06
这非常适合我 - 我想'$( “选项:选择”,这)'如上所述,但这是有问题的。我正在使用按钮单击将所选选项元素文本追加到另一个div,但是当我单击按钮时,它实际上改变了所选元素......很奇怪。使用这个。 – skwidbreth 2016-04-04 21:30:42