Javascript: получить ID всех элементов, начинающихся с одинаковых символов - PullRequest
1 голос
/ 27 мая 2020

Меня просто беспокоит следующая Javascript функция.

На странице есть несколько элементов, начинающихся с одного и того же идентификатора. Количество идентификаторов различается в зависимости от ввода пользователя. Также идентификатор не является непрерывным. Но номер всегда состоит из четырех цифр:

<section id="mirror_element_0001"></section>
<section id="mirror_element_0002"></section>
<section id="mirror_element_0401"></section>
<section id="mirror_element_1039"></section>
...

Мне нужна функция, которая дает мне полные идентификаторы всех элементов. Итак, для приведенного выше примера мне нужен следующий результат:

mirror_element_0001
mirror_element_0002
mirror_element_0401
mirror_element_1039
...

С myStringArray = $('[id^="mirror_element_"]'); я получаю весь элемент. И myStringArray().substr(0, 4) выйдет из строя с ошибкой.

Ребята, вы можете мне помочь? Всем спасибо!

Ответы [ 2 ]

4 голосов
/ 27 мая 2020

Как только у вас будет коллекция всех элементов, сопоставьте их с их идентификаторами. Нет необходимости в большой библиотеке вроде jQuery для чего-то такого тривиального:

console.log(
  [...document.querySelectorAll('[id^="mirror_element_"]')]
    .map(elm => elm.id)
);
<section id="mirror_element_0001"></section>
<section id="mirror_element_0002"></section>
<section id="mirror_element_0401"></section>
<section id="mirror_element_1039"></section>
2 голосов
/ 27 мая 2020

Вот мой подход.

const result = [...myStringArray].map(section => $(section).attr('id'))

const myStringArray = $('[id^="mirror_element_"]');

const result = [...myStringArray].map(section => $(section).attr('id'))

console.log(result)
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
<section id="mirror_element_0001"></section>
<section id="mirror_element_0002"></section>
<section id="mirror_element_0401"></section>
<script src="https://code.jquery.com/jquery-3.1.0.js"></script>
<section id="mirror_element_1039"></section>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...