Javascript: выбор опции на основе ее содержимого - PullRequest
0 голосов
/ 30 мая 2010

В основном это, но в чистом JavaScript:
Как получить 'значение' тега select на основе содержимого тега select, используя Nokogiri

У меня есть список выбора со множеством стран / штатов, и я хочу иметь возможность выбрать один из них на основе того, что находится между тегами <option>.

<option value="4783">Argentina</option>

(я знаю, что могу использовать значение, но каждое из них представляет собой случайную сетку чисел, поэтому мне придется собирать каждое отдельное - не экономичное)

Ответы [ 3 ]

5 голосов
/ 30 мая 2010

Это немного больно, но в чистом JavaScript:

for(var i=0,sL=mySelObj.length;i<sL;i++){
  if(mySelObj.options[i].text == myValue){
    mySelObj.selectedIndex = i;
    break;
  }
}
1 голос
/ 26 марта 2013

Теперь, когда querySelector доступен в большинстве браузеров, вы можете использовать:

document.querySelector('select').selectedIndex = 
    document.querySelector('option[value=4783]').index;
0 голосов
/ 30 мая 2010

Свойство textContent позволяет увидеть, что находится внутри тега. С моей головы и без тестирования, это должно работать:

function selectByDisplayValue(selectTag, displayValue)
{
    var options = selectTag.getElementsByTagName('option');
    for(var i = 0; i < options.length; i++)
        if(options[i].textContent == displayValue)
        {
            options[i].selected = true;
            break;
        }
}

Где selectTag - это объект DOM вашего тега <select>, а displayValue - это отображаемое значение параметра, который вы хотите выбрать (для вашего примера это "Аргентина").

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