2

質問があります。parentNode プロパティを複数回使用するにはどうすればよいですか?

私はこのようなものを作ることができることを知っています:

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

または、このようなもの。私の問題は、削除したいものを削除するために .parentNode を多かれ少なかれ追加できるということではありません。

私の問題は、削除する必要がある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 ソリューションもいいでしょう。

4

1 に答える 1

2

この関数は仕事をするべきです:

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)ます。ページ全体が消えます:)

于 2016-02-28T23:19:54.417 に答える