#javascript
#javascript
Вопрос:
Я пытаюсь ограничить область поиска, которую пользователь может определить в своей конфигурации, а затем перебирать каждый элемент в нем, чтобы соответствовать только элементам заголовка.
В настоящее время у меня scope
ограниченное:
const scope = document.getElementById( 'main' );
Который возвращает это в console.log(scope);
Я пытался найти способ перебирать элементы, но все, что я пытаюсь, не работает.
Я пробовал:
const elements = scope.getElementsByTagName('*');
Но это возвращает HTML в виде строки.
Я пытался сделать a for( var i in scope ) OR for( var i in elements )
, но это возвращает целую кучу зацикленных данных, которые кажутся неправильными.
Пример кода DOM, очевидно, не является исчерпывающим, но цель состоит в том, чтобы получить все H1-6 в их порядке, а затем иметь возможность редактировать innerText
или редактировать элемент, чтобы добавить тег anther.
Комментарии:
1. Является ли jquery опцией?
2. спасибо — я должен использовать vanilla, поскольку это расширение для другого фреймворка
Ответ №1:
Ванильный JS:
const scope = document.getElementById('main');
const headers = document.querySelectorAll('h1, h2, h3, h4, h5, h6');
headers.forEach(h => {
h.innerText = 'modified text';
});
Если вы можете использовать jQuery, попробуйте это:
var scope = $('#main');
scope.children(':header').each(function(index) {
$(this).text('modified text');
});
Комментарии:
1. есть ли способ сделать это только с помощью javascript? кажется очень чистым
2. конечно, я добавлю это в свой ответ