MalikDeveloper2077
@MalikDeveloper2077

Почему .parentNode underfined?

HTML:
<div class="question"> 
    <form class="delete-form" type="POST">
        <a class="btn btn-danger delete-btn" data-pk="{{ question.pk }}">Delete</a>
    </form>
</div>


JS:
$('.delete-btn').click(function(e) {
        e.preventDefault();
        let btn = $(this);

        $.ajax({
            type: 'POST',
            url: 'some_url',
            data: {
                // Some data
            },
            success: function(data) {
                // Remove question
                btn.parentNode.removeChild(btn) //  HERE PROBLEM WAS CALLED
            },
            error: function(error) {
                // Danger
            }
        })
    })


Хочу удалить .question (родителя кнопки)
Почему то когда я пишу console.log(btn) выводится обьект кнопки, когда пишу btn.parentNode - underfined. Как исправить?
  • Вопрос задан
  • 60 просмотров
Решения вопроса 1
Aetae
@Aetae Куратор тега JavaScript
Тлен
let btn = $(this);
$ - jquery,
this - HTMLElement,
$(this) - объект jquery.

У объекта jquery нет свойства parentNode. У него есть метод parent().
parentNode есть у HTMLElement.

remove(), который вам советуют, есть и там и там, но лучше вам понимать что вы делаете, чем полагаться на удачные совпадения.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
joeberetta
@joeberetta Куратор тега JavaScript
Читай: https://epdf.pub/google-for-dummies.html
Используйте elem.remove().
Описание: https://developer.mozilla.org/ru/docs/Web/API/Chil...
Ответ написан
Комментировать
zkrvndm
@zkrvndm
Архитектор решений
Попробуйте так:
btn.parentElement.remove();
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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