Задать вопрос
frilanser
@frilanser

Как найти элементы, содержащие в себе заданный текст?

Помогите правильно собрать перебор слов категорий сравнивая их с переменной если есть совпадение то выбрать input

Демо: jsfiddle
  • Вопрос задан
  • 77 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Можно приводить к общему регистру строку, по которой выполняется поиск, и тексты элементов:

function setChecked(value) {
  value = value.toLowerCase();

  for (const n of document.querySelector('.u-combolist').children) {
    n.querySelector('input').checked = n
      .querySelector('label')
      .innerText
      .toLowerCase()
      .includes(value);
  }
}

Или, воспользоваться регистронезависимым регулярным выражением:

function setChecked(value) {
  let test = () => false;
  try {
    test = RegExp.prototype.test.bind(RegExp(value, 'i'));
  } catch (e) {}

  document.querySelectorAll('.u-combolist label').forEach(n => {
    n.previousElementSibling.checked = test(n.textContent);
  });
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы