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

How to select option in jQuery using text of option tag

本文关键字:选项 jQuery 文本 选择 何使用      更新时间:2023-09-26

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

var category = $(row + 'td:nth-child(4)').text();
$('#category_id', theCloned).load('/webadmin/video/get_categories',function(){
   $('#category_id', theCloned).val(category);
});

没有抛出错误,但不会更改选择框。我在这里做错了什么?

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

<option value="1">Capabilities</option>
<option value="2">Application Focus</option>
<option value="5">Fun</option>

类别变量的值为"乐趣"或"能力"等。

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>

category变量的值为Fun,最后三个选项都将是选择器的一部分。


更新2

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

$('#id_of_select_box').val('your_value');

这将执行

试试这个

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

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

<select>
    <option value='1'>one</option>
    <option value='2' >two</option>
    <option value='3' >three</option>
</select>

脚本

$("select").on("change",function(){    
    alert($("select option:selected").text());
});