$(“select> option [text ='xxx']”)不起作用

时间:2012-10-19 13:08:09

标签: jquery

我需要用文本设置默认选择值,这是我的代码:

HTML:

<select id="sel">
    <option value="F">Firm</option>
    <option value="G" selected="selected">Government</option>
    <option value="I">Individual</option>
</select>

JavaScript的:

$("#sel>option[text='Firm']).prop("selected", true);

它不起作用,低于0:

$("#sel>option[text='Firm']).length

如果我使用属性值,它可以工作,但我需要在这里使用文本。

感谢。

3 个答案:

答案 0 :(得分:3)

无法将元素的文本内容视为CSS选择器语法中的属性。

您可以编写一个过滤器来执行此操作:

$('select option').filter(function() {
  return $(this).text() === "Firm";
}).whatever();

答案 1 :(得分:2)

那是因为text不是CSS属性。

但是,您可以使用jQuery's :contains selector

$("select > option:contains('xxx')")

答案 2 :(得分:1)

您可以使用filter()根据内部文本获取特定元素:

$("#sel > option").filter(function() {
    return this.innerHTML == "Firm";
}).prop("selected", true);