Подставление вместо [элемента] числа от 1 до ... по счёту при нахождении элемента на странице?
На сайте необходимо добавить скрипт, чтобы при нахождении определенного [элемента] он подставлял значение от меньшего, к большему.
пример
Заголовок [элемент] - отображается 1
текста
меню
картинки
Заголовок [элемент] - отображается 2
списки
картинки
Скрытый текст [элемент] - отображается 3 и т.д.
На странице будет *неизвестное количество элементов* и нужно чтобы от первого найденного <элемент> до последнего <элемент> они нумеровались в последовательности от 1 до 10 к примеру.
valeranowa, находи элементы через document.querySelectorAll(selector), с помощью цикла проходись по ним и всовывай текущий индекс элемента внутрь
const arbitraryElements = document.querySelectorAll('.unknown-element'); // найти все элементы с классом "unknown-element"
arbitraryElements.forEach((el,idx) => { // для каждого найденного элемента
el.innerHTML = `<h2>ELEMENT NUMBER ${idx + 1}</h2>` // добавляешь h2 с порядковым номером элемента
}
const arbitraryElements = document.querySelectorAll('.nomer-element'); // найти все элементы с классом "nomer-element"
arbitraryElements.forEach((el,idx) => { // для каждого найденного элемента
el.innerHTML = `${idx + 1}` // добавляешь h2 с порядковым номером элемента
}
После чего на странице html где нужно искать добавил загрузку этого файла:
Потом нашёл строку, в которой необходимо добавить этот номер:
<div class="menu-button nomer-element">Текст ${idx + 1}</div> // кнопка взята просто за пример
После сохранения вылезает вот такая ошибка:
Smarty error: [in test:_smarty_test_template.tpl line 103]: syntax error: unrecognized tag 'idx' (Smarty_Compiler.class.php, line 585)
valeranowa, после загрузки js html файл трогать не нужно, js найдет все элементы с указанным классом и добавит в них указанный текст. Только убедись, что js выполняется при загрузке страницы
window.addEventListener("load", () => {
// выполнится при загрузке страницы
})