Как перебрать внутренние элементы в «document.querySelector»

Я использую chrome devtools для проверки html. У меня есть этот код, где я применяю querySelector для внутренних элементов:

var x = document.querySelectorAll(".search__results-list li");
var myarray = []
for (var i=0; i<x.length; i++){
    const href = x[i].querySelector('.ahchor[href]');
    const text = x[i].querySelector('.text-field');

    myarray.push([href, text]);
};

QuerySelector не существует на x[i], выдает ошибку Uncaught TypeError: [...].querySelector is not a function как это исправить?

Вот образец html, на самом деле там много ли:

<ul class = "search__results-list">
  <li class = "search__result-container">
    <div class = "search-result">
      <div class = "search-result__item">
        <div class = "search-result_block">
          <div class = "center">
            <a class = "ahchor" href = "somesite.com/a">
              <div>
                <div class = "wrapper">
                  <div class = "entity">
                    <div class = "text-field">content here</div>
                  </div>
                </div>
              </div>
            </a>
          </div>
        </div>
      </div>
    </div>
  </li>
</ul>

Покажите нам html. И вы не получите такие текстовые и href-строки, а только элементы, чтобы вы знали.

digitalniweb 17.02.2023 08:40

Добавьте console.info() звонки, чтобы увидеть, что у вас есть. Но я все еще сомневаюсь, что это код, который у вас есть.

Kaiido 17.02.2023 08:41

Это не должно вызывать ошибку. Вы уверены, что загружаете html перед скриптом (элементы существуют)?

digitalniweb 17.02.2023 09:27
Руководство для начинающих по веб-разработке на React.js
Руководство для начинающих по веб-разработке на React.js
Веб-разработка - это захватывающая и постоянно меняющаяся область, которая постоянно развивается благодаря новым технологиям и тенденциям. Одним из...
Калькулятор CGPA 12 для семестра
Калькулятор CGPA 12 для семестра
Чтобы запустить этот код и рассчитать CGPA, необходимо сохранить код как HTML-файл, а затем открыть его в веб-браузере. Для этого выполните следующие...
Как собрать/развернуть часть вашего приложения Angular
Как собрать/развернуть часть вашего приложения Angular
Вам когда-нибудь требовалось собрать/развернуть только часть вашего приложения Angular или, возможно, скрыть некоторые маршруты в определенных средах?
Оптимизация React Context шаг за шагом в 4 примерах
Оптимизация React Context шаг за шагом в 4 примерах
При использовании компонентов React в сочетании с Context вы можете оптимизировать рендеринг, обернув ваш компонент React в React.memo сразу после...
Интервьюер: Почему &apos;[] instanceof Object&apos; возвращает &quot;true&quot;?
Интервьюер: Почему '[] instanceof Object' возвращает "true"?
Все мы знаем, что [] instanceof Array возвращает true, но почему [] instanceof Object тоже возвращает true?
Абстрактное синтаксическое дерево (AST) и как оно работает с ReactJS
Абстрактное синтаксическое дерево (AST) и как оно работает с ReactJS
Абстрактное синтаксическое дерево (AST) - это древовидная структура данных, которая представляет структуру и иерархию исходного кода на языке...
3
3
57
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

В вашем коде синтаксические ошибки

Должно быть:

var x = document.querySelectorAll(".search__results-list li");
var myarray = []
for (var i = 0; i < x.length; i++) {
    const href = x[i].querySelector('.ahchor[href]');
    const text = x[i].querySelector('.text-field');

    myarray.push([href, text]);
};

Этот код должен работать, если вы написали классы правильно и в соответствии с вашим html


Вы можете проверить этот код даже в консоли, он отлично работает. Но я не нашел обертки с 2 элементами и дважды использовал .m6

Введите здесь описание изображения

Для этого я использовал инструмент разработки Chrome. Я обнаружил, что в соответствии с вашим кодом вы можете добиться логики без ошибок. Вы можете запустить код несколько раз.

Это интересно, это то, чего я пытаюсь добиться

Sergino 17.02.2023 08:49

QuerySelector имеет огромную совместимость с браузерами. Даже хром v1 developer.mozilla.org/en-US/docs/Web/API/Document/querySelec‌​tor

rycha 17.02.2023 08:59

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

Vfdsd 17.02.2023 09:12

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