Селектор jQuery, содержит равно

У меня есть следующий селектор

    var likeComperssionOption = $('select[id*=ComparisionType]').eq(0)
                                            .find("option:contains('LIKE')");

это проверяет наличие опции, которая содержит слово "нравится", не так ли?

Как найти вариант, который точно соответствует слову "нравится"?

Что-то вроде этого:

     var likeComperssionOption = $('select[id*=ComparisionType]').eq(0)
                                            .find("option:equals('LIKE')");

person Aharon Muallem    schedule 08.09.2011    source источник


Ответы (2)


Просто выберите все параметры из select и отфильтруйте их по значению text():

var likeComperssionOption = $('select[id*=ComparisionType]:first option').filter(function() { return $(this).text() == "LIKE" });
person Igor Dymov    schedule 08.09.2011
comment
Это не сработало. Подобное есть в тексте. Когда я использую предупреждение, чтобы показать значение предупреждения (например ,ComperssionOption.val ()); Я не могу определить. Но когда я использовал конатины (как в вопросе), то же предупреждение отображает 3 - person Aharon Muallem; 08.09.2011
comment
Это сработало, спасибо. У меня было лайк с пробелами, поэтому у меня это не сработало. Есть ли функция обрезки? - person Aharon Muallem; 08.09.2011
comment
Фиксированный. return jQuery.trim ($ (this) .text ()) == 'НРАВИТСЯ'; - person Aharon Muallem; 08.09.2011

Если вы хотите выбирать на основе атрибута value параметров, вам необходимо использовать селектор равный атрибуту, чтобы выбрать элементы с определенным значением для их value атрибута:

var likeComperssionOption = $('select[id*=ComparisionType]').eq(0)
                           .find("option[value='LIKE']")

В противном случае для выбора на основе отображаемого текста параметров используйте:

var likeComperssionOption = $('select[id*=ComparisionType]').eq(0)
                           .find("option").filter(function() {
                               return $(this).text() == 'LIKE';
                           });

Обновление: у вас могут возникнуть проблемы с исходным селектором, это выглядит очень странно. Вам, вероятно, следует изменить

$('select[id*=ComparisionType]').eq(0)

к чему-то простому, например

$('#ComparisionType')

Концепция этого ответа работает нормально, вы можете увидеть его в действии здесь.

person Jon    schedule 08.09.2011
comment
я могу иметь значение = 1 и текст = НРАВИТСЯ: <option value="1">LIKE</option> - person Igor Dymov; 08.09.2011
comment
Это не сработало. Подобное есть в тексте. Когда я использую предупреждение, чтобы показать значение предупреждения (например ,ComperssionOption.val ()); Я не могу определить. Но когда я использовал конатины (как в вопросе), то же предупреждение отображает 3 - person Aharon Muallem; 08.09.2011
comment
@ Аарон: У меня это работает. Смотрите мое обновление и проверяйте ссылку. - person Jon; 08.09.2011
comment
Это сработало, спасибо. У меня было лайк с пробелами, поэтому у меня это не сработало. Есть ли функция обрезки? - person Aharon Muallem; 08.09.2011
comment
Фиксированный. return jQuery.trim ($ (this) .text ()) == 'НРАВИТСЯ'; - person Aharon Muallem; 08.09.2011