Как использовать свойство 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)
, Вся страница исчезнет:)