у меня есть этот код:
<SELECT onChange = "chData(this,this.value)">
<OPTION VALUE = "_MIPS-LRSYSCPU">MIPS
<OPTION VALUE = "_XXCEC-LRSYSCPU">% CEC
<OPTION VALUE = "_nIFL-LRSYSCPU">nIFL
</SELECT>
и мне нужно взять с javascript все значение (не текст) значения параметра, которое у меня есть на странице HTML. Проблема в том, что я знаю, что значение содержит слово "-LRSYSCPU", но я не знаю предыдущую часть (пример _MIPS). вторая проблема заключается в том, что у меня нет идентификатора в выборе, так как я могу получить значение параметра? Я видел, что люди используют этот код:
var e = document.getElementById("elementId");
var value = e.options[e.selectedIndex].value;
var text = e.options[e.selectedIndex].text;
но у меня нет идентификатора, поэтому я не знаю, как действовать..
Мне нужно создать массив с тремя значениями: _MIPS-LRSYSCPU, _XXCEC-LRSYSCPU и _nIFL-LRSYSCPU. Спасибо
Возможный дубликат Как получить доступ к элементу HTML без идентификатора?
ну, вы передаете this.... Разве вы не ссылаетесь на элемент с этим аргументом? Не можете ли вы добавить класс или атрибут данных к элементу



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Если вы используете только один выбор на всей странице, вы можете использовать -
let selectTags = document.getElementsByTagName('select');
затем он вернет вам массив HTMLCollection [select]. Теперь вы можете получить свой выбор, используя selectTags[0], который является объектом типа HTMLКоллекция. Этот объект содержит дочерние узлы. Перебор дочерних узлов даст вам все параметры и их значения.
Чтобы получить все значения параметров на странице, которые включают подстроку «LRSYSCPU», вы можете использовать этот код:
// Grab all the options in the page
const options = document.querySelectorAll('option');
// `filter` out the options that have the "LRSYSCPU" substring
// in their values
const filtered = [...options].filter(({ value }) => value.includes('-LRSYSCPU'));
// Iterate over those filtered options with `map` and return only
// the values
const values = filtered.map(({ value }) => value);
console.info(values);<select>
<option value = "temp">temp</option>
<option value = "_MIPS-LRSYSCPU">MIPS</option>
<option value = "_XXCEC-LRSYSCPU">% CEC</option>
<option value = "temp2">temp2</option>
<option value = "_nIFL-LRSYSCPU">nIFL</option>
</select>Документация
Оно работает!!!! Большое спасибо за быстрый ответ!! Я не могу добавить идентификатор, поэтому он работает отлично! Спасибо еще раз
Вы можете использовать document.querySelectorAll(), чтобы найти все варианты, которые заканчиваются на -LRSYSCPU. Затем вы можете перебрать их и проверить, выбраны ли они.
let options = document.querySelector("option[value$=-LRSYSCPU]");
for (let i = 0; i < options.length; i++) {
if (options[i].selected) {
value = options[i].value;
text = options[i].text;
break;
}
}
Если вы используете jQuery, у него есть расширение селектора :selected, поэтому вы можете сделать это без цикла:
var option = $("option[value$=-LRSYSCPU]:selected");
var value = option.val();
var text = option.text();
Затем поместите идентификатор на него, чтобы вы могли выбрать его?
<SELECT id = "YOUR_ID_HERE" onChange = "chData(this,this.value)">. Или выберите по имени тега «выбрать». Посмотрите наquerySelectorAll(), если вы можете его использовать. Это как getElementByX, все в одном.