Javascript 如何使用option标记的文本在jQuery中选择选项

Javascript 如何使用option标记的文本在jQuery中选择选项,javascript,jquery,Javascript,Jquery,我试图在选择框中选择某个选项,但它不起作用: var category = $(row + 'td:nth-child(4)').text(); $('#category_id', theCloned).load('/webadmin/video/get_categories',function(){ $('#category_id', theCloned).val(category); }); 没有抛出错误,但不会更改选择框。我做错了什么 下面是load()调用加载的选项示例: 功能

我试图在选择框中选择某个选项,但它不起作用:

var category = $(row + 'td:nth-child(4)').text();
$('#category_id', theCloned).load('/webadmin/video/get_categories',function(){
   $('#category_id', theCloned).val(category);
});
没有抛出错误,但不会更改选择框。我做错了什么

下面是load()调用加载的选项示例:

功能
应用程序焦点
乐趣
category变量的值是“Fun”或“Capabilities”,等等。

试试这个

$('#category_id', theCloned).val($.trim(category));
试试这个

$('#category_id', theCloned).val($.trim(category));
这就行了

var $selectbox = $('#category_id', theCloned), // cache the element to avoid lookup overheads
    category = $(row + 'td:nth-child(4)').text();
$selectbox.load('/webadmin/video/get_categories', function(){
   $selectbox
    .find('option')
    .filter(function(){
        return $(this).text() === category;
    })
    .prop('selected', true);
});
这就行了

var $selectbox = $('#category_id', theCloned), // cache the element to avoid lookup overheads
    category = $(row + 'td:nth-child(4)').text();
$selectbox.load('/webadmin/video/get_categories', function(){
   $selectbox
    .find('option')
    .filter(function(){
        return $(this).text() === category;
    })
    .prop('selected', true);
});

更新1 已更新代码,以根据更新中显示的代码进行调整。这会奏效的。但是,如果选项将包含字符串的一部分而不是完整字符串,则它仍将是选定元素的一部分。例如。 如果选项是

<option value="1">Capabilities</option>
<option value="2">Application Focus</option>
<option value="5">Fun</option>
<option value="6">Fun Time</option>
<option value="6">Funhouse</option>
功能
应用程序焦点
乐趣
欢乐时光
游乐场
类别
变量将具有值
Fun
,最后三个选项都将是选择器的一部分


更新2 更改代码以筛选文本与
类别
变量值完全匹配的选项。因此,您不必担心上面的更新1


更新1 已更新代码,以根据更新中显示的代码进行调整。这会奏效的。但是,如果选项将包含字符串的一部分而不是完整字符串,则它仍将是选定元素的一部分。例如。 如果选项是

<option value="1">Capabilities</option>
<option value="2">Application Focus</option>
<option value="5">Fun</option>
<option value="6">Fun Time</option>
<option value="6">Funhouse</option>
功能
应用程序焦点
乐趣
欢乐时光
游乐场
类别
变量将具有值
Fun
,最后三个选项都将是选择器的一部分


更新2
更改代码以筛选文本与
类别
变量值完全匹配的选项。因此,您不必担心上面的更新1。

最后我找到了一个新的解决方案


最后我找到了一个新的解决办法



请把选择框的html代码贴出来好吗?这将大大有助于我们帮助您的能力。您确定
类别
与您的目标值完全匹配吗?尝试
alert(category)
并检查值以确保。fI已尝试使用alert对所有内容进行双重检查,并且所有内容都匹配……请发布选择框的html代码,好吗?这将大大有助于我们帮助您的能力。您确定
类别
与您的目标值完全匹配吗?尝试
alert(category)
并检查值以确保。fI已尝试使用alert对所有内容进行双重检查,但所有内容都匹配……这不起作用。未更改选择框的选定索引。
类别中的值是多少?您确定选择框中有任何具有该值的
选项吗?这不起作用。未更改选择框的选定索引。
类别中的值是多少?您确定选择框中有任何具有该值的
选项吗?您的代码可以工作,但为什么与整个选项文本完全匹配的代码不能工作?这会更好,因为我不能保证选项列表中永远不会有部分字符串(如您的示例)。@croceldon:因为
:contains
选择器就是这样工作的。给我几秒钟让它变得更好。。。更新:我更改了代码。测试这是否适用于完整的字符串匹配。事实上,我的意思是为什么我的原始代码不起作用……但这并不重要,因为您更新的示例运行良好。干得好@croceldon:您的原始代码不起作用,因为您试图设置selectbox的值,但变量
category
不包含该值,而是包含文本。您的代码起作用,但为什么与整个选项文本完全匹配的代码不起作用?这会更好,因为我不能保证选项列表中永远不会有部分字符串(如您的示例)。@croceldon:因为
:contains
选择器就是这样工作的。给我几秒钟让它变得更好。。。更新:我更改了代码。测试这是否适用于完整的字符串匹配。事实上,我的意思是为什么我的原始代码不起作用……但这并不重要,因为您更新的示例运行良好。干得好@croceldon:您的原始代码不起作用,因为您试图设置selectbox的值,但变量
category
不包含该值,而是包含文本。
$("select").on("change",function(){    
    alert($("select option:selected").text());
});