0

如何选择 html where text=Washington 我正在这样做

var opt = $("#address_states_state option[text='Washington']");
var html = $("<div>").append(opt.clone()).html();
html = html.replace(/\>/, ' selected="selected">');
opt.replaceWith(html);
4

2 回答 2

2

没有直接的选择器来获取其textequals的元素X。不过,您可以做几件事:

你可以使用filter()

$('#address_states_state option').filter(function(i, el) {
   return $(el).text() === 'Washington'
});

或者,编写自己的伪选择器:

jQuery.expr[':'].textEquals = $.expr.createPseudo(function( text ) {
    return function(elem) {
        return $(elem).text() === text;
    }
});

然后你就这样做:

$('#address_states_state option:textEquals("Washington")')

这是后者的一个例子

于 2013-10-24T12:48:36.143 回答
-3

您可以使用:contains()选择器执行此操作:

$("#address_states_state option:contains('Washington')").prop('selected', true);

而不是进行克隆,然后用选定的选项替换它。

演示:小提琴

更新

如果您想选择具有特定文本的选项(在您的情况下为 'Washington'),您可以这样做:

$('#address_states_state option').filter(function () {
    return $(this).text().toLowerCase() === 'washington';
}).prop('selected', true);

演示:小提琴

于 2013-10-24T12:22:52.267 回答