如何使用jQuery将SELECT控件设置为使用文本而不是值?

29 浏览
0 Comments

如何使用jQuery将SELECT控件设置为使用文本而不是值?

我有以下HTML代码:


我知道可以使用以下代码将下拉菜单的选中值更改为任意值:

$('#cars').val(2);   // 这将使下拉菜单显示:第二辆车

但是,如何通过文本而不是值来选择一个选项呢?

我需要做的是类似于以下代码:

$('#cars').val('另一辆车');

或者

$('#cars').text('另一辆车');

但是这没有任何效果...

有什么帮助吗?

0
0 Comments

问题的原因是希望通过文本而不是值来设置一个SELECT控件。解决方法是使用jQuery的contains选择器来获取包含指定文本的值。如果想要通过文本来选择值,可以使用下面的代码:

$('#cars option:contains("Another Car")');

如果contains选择器也会匹配值的话,可以使用text属性来匹配文本:

$('#cars').find('option[text*="Another Car"]').val();

其中第一个方法可以正常工作,而第二个方法不行。感谢!

0
0 Comments

问题出现的原因是在使用jQuery设置SELECT控件时,如果使用文本而不是值来设置选项,会导致无法正确选择选项的错误。

解决方法是使用以下代码:

var text = "text";
var check = $('#cars').find('option:contains(' + text + ')').val();
$('#cars').val(check);

以上代码通过使用`:contains`选择器来找到包含指定文本的选项,然后获取其值并设置为SELECT控件的值。这样就可以成功使用文本来设置SELECT控件的选项了。

0