我有个问题。如何多次使用parentNode属性?
我知道我可以做这样的事情:
document.getElementById("mytag").parentNode.parentNode.remove();
或类似的东西。我的问题不是我可以添加更多或更少的.parentNode来删除想要删除的内容。
我的问题是我想创建一个用户友好的应用程序,用户可以在其中自行声明应删除多少parentNode。
起初,我尝试通过循环添加.parentNode。没用第二,我尝试使用eval()函数进行相同的操作。结果相同。
有没有一个很好的解决方案的人我该怎么做?如果有机会您只需要说出parentNodes的数量,这将非常有用。
这里有个小例子。我将“自动”完成的工作:
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解决方案也很好。
最佳答案
此功能应完成以下工作:
function removeParent(element, num) {
var parent = element;
for (var i = 0; i < num; i++) {
if (parent.parentNode) {
parent = parent.parentNode;
}
}
parent.remove();
}
您可以在此页面上对其进行测试。例如,stackoverflow徽标。 HTML结构是这样的:
HTML
HEAD
BODY
DIV.container
DIV#header
DIV#hlogo
打开控制台,复制粘贴功能,然后输入
removeParent(hlogo, 4)
。整个页面将消失:)