Я пытаюсь добавить CSS в какой-нибудь div.
Мой HTML:
<div class = "data-item">
<a class = "title" id = "cms-occasion" style = "font-size: 14px !important;" href = "#">Cadeau pour un diplômé</a>
<div></div>
</div>
<div class = "data-item">
<a class = "title" id = "cms-occasion" style = "font-size: 14px !important;" href = "#">Cadeau Stage pilotage</a>
<div></div>
</div>
<div class = "data-item">
<a class = "title" id = "cms-occasion" style = "font-size: 14px !important;" href = "#">Idees cadeaux</a>
<div></div>
</div>
Моя функция Js, которая неверна:
var giftIdea = document.getElementById('cms-occasion').innerHTML.indexOf('Idees cadeaux');
if (giftIdea != -1){
giftIdea.style.display = 'block';
giftIdea.style.width = '100%';
giftIdea.style.bottom = '-117px';
giftIdea.style.text-align = 'left';
giftIdea.style.position = 'absolute';
giftIdea.style.background-color = '#535353';
giftIdea.style.padding = '6px';
}
Может ли кто-нибудь сказать, что не так с моей функцией JS?
заранее спасибо
Вместо использования идентификаторов вы должны использовать классы, если хотите получить доступ к нескольким элементам.
Также в вашем JS giftIdea больше не является элементом, это число, поскольку вы помещаете .innerHTML.indexOf('Idees cadeaux') после получения элемента по идентификатору. (Но также, прежде всего, то, что сказал Йоханнес: идентификаторы должны быть уникальными)



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


В HTML есть важное правило, которое вы игнорируете: у вас не может быть нескольких элементов с одним и тем же идентификатором. ID - это уникальный идентификатор.
Точно так же JS getElementById вернет только один элемент.
Ваш селектор возвращает первый элемент, а затем ищет позицию строки, которую вы передаете indexOf.
Попробуйте использовать class вместо ID и нацелитесь на них с помощью document.querySelectorAll.
Вы можете отфильтровать возвращенный массив следующим образом
document.querySelectorAll('.cms-occasion').filter(function(el){ return el.innerHTML.indexOf('Idees cadeaux') !== -1 })
Идентификаторы уникальны и должны использоваться только один раз на странице.