Javascript букмарклет: как вернуть значение выпадающего списка на основе заголовка - PullRequest
0 голосов
/ 10 марта 2020

У меня есть выпадающий список, который может иметь различное количество параметров.

{Опция A, Опция B, Опция C, ...}

Опции не всегда доступны, поэтому изначально значения могут быть {0,1,2, ... } соответственно, но если опция A отсутствует в раскрывающемся списке, тогда опция B имеет значение 0, а C имеет значение 1 и т. д. Я хочу создать букмарклет, который при его активации выберет Option C в раскрывающемся списке.

Так что я изначально пробовал что-то подобное

javascript:(function(){document.getElementsByTagName('Select')[1].value = 0;})();

Но значение 0 не всегда совпадает с Option C.

Мой следующий план состоял в том, чтобы использовать:

javascript:(function(){document.getElementsByTagName('Select')[1].title = "Option C";})();

, и, хотя казалось, что он вносит изменения в код HTML, он не делает изменение фактического веб-сайта.

Теперь мне интересно, есть ли способ вернуть значение параметра на основе заголовка? Все еще новичок в Javascript, но спасибо за любую помощь, которая предоставляется.

Редактировать 1: Я не могу показать реальное HTML по причинам, но это то, на что это похоже.

<select id="DropDown::Content" name="DropDown" class="x2h" title> <option value="0" title="Option A">Option A </option> <option value="1" title="Option B">Option B </option> <option value="2" title="Option C">Option C </option>

1 Ответ

0 голосов
/ 10 марта 2020

Вы не можете установить метку, но вы можете go с помощью раскрывающегося списка, проверить метки, найти «Option C», получить его значение и установить его значение для поля «Выбор».

Здесь пример, в котором мы устанавливаем «Option C» для второго раскрывающегося списка независимо от его значения.

function selectOptionC () {
  
  const selectOptions = document.getElementsByTagName("Select")[1].options;
  for(let i = 0; i < selectOptions.length; i++) {
    // we can check label and set value based on that
    if (selectOptions[i].label == 'Option C') {
      document.getElementsByTagName("Select")[1].value = selectOptions[i].value;
    }
  }
}

selectOptionC();
<select id="dropdown-a" title="testing title">
  <option>titleA</option>
  <option>titleB</option>
  <option>Option C</option>
</select>

<select id="dropdown-b" title="testing title 2">
  <option value='0'>titleC</option>
  <option value='1'>titleD</option>
  <option value='2'>Option C</option>
  <option value='3'>titleD2</option>
</select>

<select id="dropdown-c" title="testing title 3">
  <option>titleE</option>
  <option>titleF</option>
</select>
...