Chrome DevTools: цикл через NodeList

На странице у меня есть таблица с несколькими строками (в основном 100), каждая из которых имеет несколько столбцов. Каждая строка имеет привязку с классом .no-red.

Я использую консоль chrome dev tools для извлечения этого элемента привязки с помощью

document.querySelectorAll('.no-red')

Это возвращает мне массив

NodeList(100) [a.no-red.selectorgadget_selected, 
a.no-red.selectorgadget_suggested, a.no-red.selectorgadget_suggested, 
a.no-red.selectorgadget_suggested, a.no-red.selectorgadget_suggested, 
a.no-red.selectorgadget_suggested, a.no-red.selectorgadget_suggested, 
a.no-red.selectorgadget_suggested, a.no-red.selectorgadget_suggested, 
a.no-red.selectorgadget_suggested, a.no-red.selectorgadget_suggested
....and so on]

Я хочу зациклиться внутри этого списка и извлечь текст каждого элемента привязки.

Вот образец одного якорного элемента

<a class = "no-red selectorgadget_selected" ng-href = "https://www.twitter.com/java" target = "_blank" href = "https://www.twitter.com/java"><i class = "fa fa-twitter"></i> java</a> 

Как мне получить текст всех 100 якорных элементов?

можно попробовать что то вроде этого var list = document.querySelectorAll('.no-red') var stringmap = list.map(x => x.textContent)

Gotrank 23.03.2018 16:41

Спасибо @Gotrank. Где мне это набрать? Я использую консоль Google.

CuriousDev 23.03.2018 16:44

Если вы напишете это в консоль, у вас будет переменная, которая содержит список строк с текстом элементов.

Gotrank 23.03.2018 16:52

Я сделал. Uncaught SyntaxError: Неожиданный токен var.

CuriousDev 23.03.2018 18:04

@CuriousDev - вам понадобятся точки с запятой между операторами, если вы не собираетесь помещать их все в отдельную строку. Таким образом, вам понадобится 1, а нужно использовать 2 из них. Один в конце, другой после вызова querySelectorAll. ;)

enhzflep 23.03.2018 18:13

Я тоже пробовал. Uncaught TypeError: list.map не является функцией

CuriousDev 23.03.2018 19:33
(1) $$ ('. No-red'). Map (e => e.textContent) (2) copy ($$ ('. No-red'). Map (e => e.textContent) .join ('\ n ')) // скопировать в буфер обмена
wOxxOm 23.03.2018 22:36

@CuriousDev сначала делает результаты querySelectorAll массивом, подобным этому var entries = Array.from($0.querySelectorAll('li')). Затем вызовите map для этого массива.

Crashalot 14.09.2018 10:19
Поведение ключевого слова "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) для оценки ваших знаний,...
2
8
1 551
1

Ответы 1

Основываясь на ответе wOxxOm.

Чтобы выбрать текстовое содержимое (текст между тегами HTML) элемента, чье имя класса CSS - 'no-red'

<a class = "no-red">My Text</a>

Сначала откройте Инструменты разработчика Chrome, щелкнув правое меню с точками в Chrome, затем нажмите Дополнительные инструменты, а затем Инструменты разработчика, или используйте комбинацию клавиш Ctrl + Shift + I.

Затем перейдите на вкладку «Консоль».

Введите мигающий курсор,

$$('.no-red').map(e => e.textContent)

Это приведет к извлечению текстового содержимого соответствующего элемента с классом «no-red». Но он не позволит вам делать что-либо еще.

Если вы пытаетесь выполнить эту операцию, чтобы извлечь текст, а затем скопировать и вставить его в какое-либо другое приложение или код, вы можете ввести следующее под курсором, чтобы выбрать нужный текст и скопировать его в буфер обмена, откуда вы можете изменить на выберите нужную программу / программное обеспечение и вставьте из буфера обмена с помощью пункта меню Правка> Вставить или комбинации клавиш Ctrl + V

copy($$('.no-red').map(e => e.textContent).join('\n')) 

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