Как просмотреть параметры раскрывающегося меню и сравнить его с заданным значением в JavaScript? - PullRequest
0 голосов
/ 24 июня 2019

У меня есть файл xslt с динамически заполненным раскрывающимся меню.Мне нужно прочесть раскрывающееся меню, заполненное динамическими кодами, с помощью JavaScript и сравнить его с определенным значением самостоятельно.Например, мое определенное значение - пятница.Мое раскрывающееся меню заполнено всеми днями недели, и если в моем раскрывающемся меню есть «Пятница», я бы хотел что-то сделать.Поэтому вопрос заключается в том, как я могу пройти через раскрывающееся меню и сравнить каждую запись с моим определенным значением?

Это часть моего xslt-файла для раскрывающегося меню:

            <th rowspan="2">plane
                <select id="modelRangeDropdown" onclick="JavaScript_Filter(this)">
                        <option selected="selected">All</option>
                     <xsl:for-each select="logstore/plane">
                        <option>
                            <xsl:value-of select="Name" />
                          </option>
                     </xsl:for-each>                    
                </select>                    
            </th>

Ответы [ 2 ]

0 голосов
/ 24 июня 2019

Я тоже нашел решение самостоятельно.

Я могу просто перейти в раскрывающееся меню с помощью:

var parameterDropdown = "Friday";
var mySelectNode = document.getElementById("modelRangeDropdown");
var l = mySelectNode.options.length;
    for (var i = 0; i < l; i++) { 
        var opt = mySelectNode[i];

        if (opt === parameterDropdown) {
            // do...
        }
    }

0 голосов
/ 24 июня 2019

Вы можете получить HTMLOptionsCollection , а затем, используя Array.some, выполнить цикл, проверяя, существует ли значение.

const select1 = document.getElementById("select1");
const select2 = document.getElementById("select2");

if (Array.from(select1.options).some(function(option) { return option.innerText == "Friday"; })) {
  console.log("select1 has Friday");
}

if (Array.from(select2.options).some(function(option) { return option.innerText == "Friday"; })) {
  console.log("select2 has Friday");
}
<select id="select1">
  <option>Monday</option>
  <option>Tuesday</option>
  <option>Wednesday</option>
  <option>Thursday</option>
</select>

<select id="select2">
  <option>Monday</option>
  <option>Tuesday</option>
  <option>Wednesday</option>
  <option>Thursday</option>
  <option>Friday</option>
</select>

Вы также можете создать массив текста опций и проверить, включен ли «Пятница».

const select1OptionsText = Array.from(document.getElementById("select1").options).map(function(option) { return option.innerText; });
const select2OptionsText = Array.from(document.getElementById("select2").options).map(function(option) { return option.innerText; });

if (select1OptionsText.includes("Friday")) {
  console.log("select1 has Friday");
}

if (select2OptionsText.includes("Friday")) {
  console.log("select2 has Friday");
}
<select id="select1">
  <option>Monday</option>
  <option>Tuesday</option>
  <option>Wednesday</option>
  <option>Thursday</option>
</select>

<select id="select2">
  <option>Monday</option>
  <option>Tuesday</option>
  <option>Wednesday</option>
  <option>Thursday</option>
  <option>Friday</option>
</select>

Если по какой-либо причине вы не можете использовать Array.from(), вы можете заменить его на [].slice.call().

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