Задать вопрос
fast-je
@fast-je
Пишу на php.

Как спрятать дочерний элемент под родительский?

На странице есть такой кусочек верстки.
<a href="#" class="earn-item__control-item earn-item__control-item-fav earn-item__control-item_favorites">
     <svg class="icon icon-star-empty"><use xlink:href="/images/icons/symbol-defs.svg#icon-star-empty"></use></svg>
</a>


dc29a76dcb9c44dd91d67177fa624fe2.jpg

Код на js

(function () {
    document.addEventListener("DOMContentLoaded", function (event) {

        var favItems = [].slice.call(document.querySelectorAll(".earn-item__control-item-fav"));

        favItems.forEach(function (elem) {
            elem.addEventListener("click", function (event) {
                var target = event.target;
                event.preventDefault();
                console.log(target);
            });
        });
    });
}());


Я хочу сделать следующее при нажатии на звезду, я хочу получить родительский элемент тег a c классами earn-item__control-item earn-item__control-item-fav earn-item__control-item_favorites
Но получаю тег svg или use
350ed8ae815c4e0f807c1066edf2ab76.jpg
как сделать чтобы при нажатии на звезду показывался только тег a.
  • Вопрос задан
  • 316 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
использовать parentNode или parentElement

elem.addEventListener("click", function (event) {
   var target = event.target;
   event.preventDefault();
   console.log(target.parentNode); // <-- выводим в консоль предка с помощью parentNode
});

https://www.w3schools.com/jsref/prop_node_parentel...
Ответ написан
romash
@romash
web-разработчик
Тег a у вас уже есть в замыкании:
(function () {
    document.addEventListener("DOMContentLoaded", function (event) {

        var favItems = [].slice.call(document.querySelectorAll(".earn-item__control-item-fav"));

        favItems.forEach(function (elem) {
            elem.addEventListener("click", function (event) {
                console.log(elem);
            });
        });
    });
}());
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы