У меня есть приведенный ниже URL
<h1 id = "header_2" title = "mytitle" data-id = "header_title" class = "sampleclass " xpath = "1">mytitle<span aria-label = "sometest" class = "sampleclass ">- Saved</span></h1>
Основываясь на идентификаторе (header_2), я хотел получить заголовок. Мой идентификатор также может содержать id = "header_mdfa3fad", но наверняка после "_" он числовой. Как мне написать для него querySelector



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать это решение:
const headers = document.querySelectorAll("[id^='header_']");
const titles = [];
headers.forEach((header) => titles.push(header.getAttribute('title')));
// Do something you want with titles array
Спасибо за ответ, но у меня также есть такой формат заголовка, как header_abc0xys, который мне не нужен. Мое требование состоит в том, чтобы просто получить заголовок_1 (после _ сразу числовое значение).
Если я вас правильно понял, попробуйте что-то вроде этого:
#select h1 elements with id attribute whose value begins with "header"
headers = document.querySelectorAll("[id^='header_']");
#loop through the elements and extract the part of the attribute value following "_"
for (let header of headers) {
target = header.getAttribute('id').split('_')[1]
#check for the presence of a digit
if (/\d/.test(target)) {
console.info(header.getAttribute('title'))
}
}
Вы можете применить регулярное выражение для фильтрации, как это
var divs = [].slice.call(document.querySelectorAll("[id^='header_']")).filter(function(el){
return el.id.match(/^header_[0-9]+/i);
});
console.info(divs);<div id = "header_1"></div>
<div id = "header_2"></div>
<div id = "header_3"></div>
<div id = "header_abc"></div>
<div id = "header_xyz"></div>
Также вы можете прочитать больше о селекторах атрибутов здесь