Как использовать свойство parentNode несколько раз?

У меня вопрос. Как я могу использовать свойство parentNode несколько раз?

Я знаю, что могу сделать что-то вроде этого:

document.getElementById("mytag").parentNode.parentNode.remove();

Или как то так. Моя проблема не в том, что я могу добавить более или менее.parentNode, чтобы удалить все, что я хочу удалить.

Моя проблема заключается в том, что я хочу создать удобное приложение, в котором пользователь может самостоятельно объявить, сколько родительских узлов должно быть удалено.

Сначала я попытался добавить.parentNode в цикле. Не работает Во-вторых, я попробовал то же самое с функцией eval(). Тот же результат.

Есть человек, у которого есть хорошее решение, как я могу это сделать? Это было очень полезно, если есть возможность, о которой нужно только сказать количество родительских узлов.

Вот маленький пример. Что я буду делать "автоматически":

myFunction(..., ..., 3) {
    ...
    document.getElementById("mytag").parentNode.parentNode.parentNode.remove();
}

Или же

myFunction(..., ..., 2) {
    ...
    document.getElementById("mytag").parentNode.parentNode.remove();
}

Или же

myFunction(..., ..., 1) {
    ...
    document.getElementById("mytag").parentNode.remove();
}

Большое спасибо.

Я предпочитаю решение в чистом виде JS. Было бы неплохо дополнительное решение jQuery.

1 ответ

Эта функция должна делать работу:

function removeParent(element, num) {
    var parent = element;
    for (var i = 0; i < num; i++) {
        if (parent.parentNode) {
            parent = parent.parentNode;
        }
    }
    parent.remove();
}

Вы можете проверить это на этой странице. Например, логотип stackru. Структура HTML выглядит следующим образом:

HTML
    HEAD
    BODY
        DIV.container
            DIV#header
                DIV#hlogo

Откройте консоль, скопируйте и вставьте функцию, а затем введите removeParent(hlogo, 4), Вся страница исчезнет:)

Другие вопросы по тегам