Jquery选择器 - 文本等于 - 不工作

And*_*ewB 3 html javascript jquery

HTML

<select id="myDDL">
    <option selected="selected" value="0">default</option>
    <option value="1">apples</option>
    <option value="2">oranges</option>
</select>
Run Code Online (Sandbox Code Playgroud)

使用Javascript

setFieldValue("myDDL", "apples");

function setFieldValue(field, value)
{
    var val = $("#" + field + " option[text]");
    console.log(val);
    $("#" + field).val(val);
}
Run Code Online (Sandbox Code Playgroud)

的jsfiddle

https://jsfiddle.net/nnvh7e43/

我想根据文本在选择字段中选择一个选项,即:

var val = $("#" + field + " option[text='" + value + "']");
Run Code Online (Sandbox Code Playgroud)

但是,只要我在选项后添加[text],选择器似乎选择整个文档,而$("#"+ field +"option"); 如我所料,只需选择选择字段中的所有选项标签即可.

你能解释一下为什么它不能识别"[text]"以及我如何纠正这个问题?

谢谢

Mil*_*war 6

apples是选项的文本,而不是它的价值.你需要在.filter()这里使用函数:

 $("#" + field + " option").filter(function(){
       return $(this).text() === value ;
 });
Run Code Online (Sandbox Code Playgroud)

此外,您试图通过文本获取选项值,然后将其值设置为选择.您可以将选项的selected属性设置为true以将其设置为选中:

 $("#" + field + " option").filter(function(){
       return $(this).text() === value ;
 }).prop('selected', true);
Run Code Online (Sandbox Code Playgroud)

工作演示