Какой селектор мне нужен, чтобы выбрать опцию по ее тексту? - PullRequest
187 голосов
/ 19 сентября 2010

Мне нужно проверить, есть ли у <select> опция, текст которой равен определенному значению.

Например, если есть <option value="123">abc</option>, я буду искать «abc».

Есть ли селектор для этого?

Я ищу что-то похожее на $('#select option[value="123"]');, но для текста.

Ответы [ 16 ]

1 голос
/ 12 июля 2013

Это будет работать в jQuery 1.6 (обратите внимание на двоеточие перед открывающей скобкой), но не будет работать в более новых выпусках (в то время 1.10).

$('#mySelect option:[text=abc]")
0 голосов
/ 25 января 2019

Это работает для меня:

var result = $('#SubjectID option')
            .filter(function () 
             { return $(this).html() == "English"; }).val();

Переменная result вернет индекс соответствующего текстового значения. Теперь я просто установлю его, используя его индекс:

$('#SubjectID').val(result);
0 голосов
/ 15 июля 2015

Это работает для меня

var options = $(dropdown).find('option');
var targetOption = $(options).filter(
function () { return $(this).html() == value; });

console.log($(targetOption).val());

Спасибо за все сообщения.

0 голосов
/ 25 июня 2015

Как описано в этого ответа , вы можете легко создать свой собственный селектор для hasText.Это позволяет вам найти параметр с $('#test').find('option:hastText("B")').val();

Вот метод hasText, который я добавил:

 if( ! $.expr[':']['hasText'] ) {
     $.expr[':']['hasText'] = function( node, index, props ) {
       var retVal = false;
       // Verify single text child node with matching text
       if( node.nodeType == 1 && node.childNodes.length == 1 ) {
         var childNode = node.childNodes[0];
         retVal = childNode.nodeType == 3 && childNode.nodeValue === props[3];
       }
       return retVal;
     };
  }
0 голосов
/ 14 августа 2014

Это также будет работать.

$ ('# test'). Find ("опция выбора: содержит ('B')"). Filter (": selected");

0 голосов
/ 19 сентября 2010

Либо вы перебираете опции, либо помещаете тот же текст в другой атрибут опции и выбираете с ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...