Нужно выбрать текст выбранного раскрывающегося списка с помощью JavaScript

У меня есть раскрывающийся список со значениями. У меня есть массив массивов со списком значений, которые будут соответствовать выпадающим значениям. Если значение текстовой опции раскрывающегося списка существует в массиве, оно не должно отображаться в раскрывающемся списке как опция. Я застрял на подходе, который я должен использовать. Это то, что у меня есть до сих пор.

HTML

Car Plates: 
<select title='car/id' id='car_x0020_Plate_x002f'>
  <option selected = "selected" value = "0">none</option>
  <option value = "16">233-jj2</option>
  <option value = "10">934-zxy</option>
  <option value = "90">330-nbh</option>
  <option value = "11">930-orj</option>
</select>

JavaScript

var hideOption = ['233-jj2', '330-nbh']

var e = document.querySelector([id^='car']);
var strUser = e.value;
                               
var e = document.getElementById("ddlViewBy");
var strUser = e.options[e.selectedIndex].text;

for (var x=0; x<hideOption.length; x++){
  if (hideOption[x] === strUser){
    //remove from dropdown
  }
}

Не уверен, что это ваша проблема, но у вас опечатка: lenght

jmargolisvt 22.12.2020 18:51
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
175
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

var hideOption = ['233-jj2', '330-nbh']

var e = document.querySelector("[id^='car']");
var selTextArr = Array.from(e.options).map(option => option.text)
                               
for (var x=0; x<selTextArr.length; x++){
  if (hideOption.includes(selTextArr[x])){
    e.remove(x)
  }
}
Car Plates: 
<select title='car/id' id='car_x0020_Plate_x002f'>
  <option selected = "selected" value = "0">none</option>
  <option value = "16">233-jj2</option>
  <option value = "10">934-zxy</option>
  <option value = "90">330-nbh</option>
  <option value = "11">930-orj</option>
</select>

// удалить из выпадающего списка используйте этот код, чтобы удалить из выпадающего списка e.removeChild (e.options [e.selectedIndex])

вы также можете использовать это e.selectedOptions[0].remove()

var options = document.querySelector("[id^='car']").children;
var hideOption = ['233-jj2', '330-nbh']

for (var i = 0; i < options.length; i++){
    if (hideOption.indexOf(options[i].text) > -1){
        options[i].remove();
    }
}
Ответ принят как подходящий

Я сделал вашу идею очень простым способом, если у вас есть какие-либо вопросы, пожалуйста, сообщите мне

var hideOption = ['233-jj2', '330-nbh'],
    select = document.getElementById("select");

for (let i = 0; i < hideOption.length; i = i + 1) {
    for (let t = 1; t < select.options.length; t = t + 1) {
        if (hideOption[i] == select.options[t].textContent) {
            select.options[t].remove();
        }
    }
}
Car Plates: 
<select title='car/id' id='select'>
  <option selected = "selected" value = "0">none</option>
  <option value = "16">233-jj2</option>
  <option value = "10">934-zxy</option>
  <option value = "90">330-nbh</option>
  <option value = "11">930-orj</option>
</select>

К сожалению, мой идентификатор будет иметь причудливое имя id='car_x0020_Plate_x002f'. Он генерируется. Как я могу заставить ваше решение работать с этим?

OLA 22.12.2020 20:44

вы можете изменить мой идентификатор на свой идентификатор, изменить выбор на car_x0020_Plate_x002f или вы можете работать с именем класса вместо идентификатора: поместите этот код в javascript select = document.getElementsByClassName("yourselectclassname")[0]; вместо select = document.getElementById("select"); yourselectclassname этот класс дает его для выбора в html <select class = "yourselectclassname" > ... Если у вас есть какие-либо вопросы, просто скажите мне, например, если вам нужен другой метод, и вы хотите работать только с идентификатором.

Taha Halabi 22.12.2020 21:09

Я дам вам другой метод, если вы не можете добавить класс в свой выбор, и только вы хотите работать с идентификатором

Taha Halabi 22.12.2020 21:17

Добавьте этот код вверху кода JavaScript var selectall = document.querySelectorAll('select');var select; for (var i = 0; i < selectall.length; i = i + 1) { if (selectall[i].getAttribute("id") != undefined) { if (selectall[i].getAttribute("id").indexOf("car") != -1) { select = selectall[i]; перерыв; } } } ``` // удалить это: select = document.getElementById("select"); Тогда весь ваш код будет работать нормально, если у вас есть какие-либо вопросы, спросите меня, у всего есть решение.

Taha Halabi 22.12.2020 21:27

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

Taha Halabi 22.12.2020 21:34

Другие вопросы по теме