javascript_javascript スキルで親ノードを見つける簡単な方法

WBOY
リリース: 2016-05-16 19:10:43
オリジナル
1090 人が閲覧しました

タイトル

  • プロジェクト 1


    • >サブカテゴリ 1
    • >プロジェクト 1

    • トリガーされたイベントとパラメータが同じであるため、ユーザーが「項目 x」をクリックしたのか「サブカテゴリ」をクリックしたのかを区別できます。要素は、その要素がルートノードである XML 文書内の垂直位置 (ノードの深さ) によって区別されます。たとえば、
    • の「プロジェクト 1」のノードの深さは 2、「サブクラス」のノードの深さは 2 です。 One" は 4 です。 ノードの深さを計算し、再帰的メソッドを除外した後、より単純なメソッドを見つけます:


    functionparentIndexOf(node,parent){
  • if (node==parent){ return 0;} for (var i=0,n=node; n=n.parentNode; i ){ if(n==p){return i;}
  • if(n== document.documentElement){return -1;} //無限ループを防ぐためのターゲットの親ノードが見つかりません
    }
  • }
  • リターン関数の値がインデックス番号です。エントリ ノードが検索対象の親ノードと同じ (つまり、同じ要素) の場合、戻り値は 0 になります。親ノードを見つけるために上向きにル​​ープした後、その番号が返されます。上方向に検索されたノードの数が返されます。検索が上方向の場合は、ページ全体のルート ノード (
    など) に到達します。見つからない場合は、-1 を返し、ループを終了します。

戻り値は、String オブジェクトの組み込みのindexOf メソッドと同様です。この関数の鍵となるのは for の 2 番目のパラメーター n=n.parentNode で、これは賢明だと感じます。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート