19

フォールバックは無関係です。ライブラリはありません。

dom オブジェクト参照があり、 を呼び出しますobj。実際には event.target です。

nodesquerySelectorAll と変数セレクターで取得したノード リストを と呼びます。

nodes1 つまたは複数の要素を持つことができ、それらの各要素のそれぞれが子を持​​つことができます。

objがこれらのノード要素の 1 つであるか、それらのノード要素の子要素であるかを判断する必要があります。ここでは「ネイティブな」ブラウザー機能を探しています。独自のforループを作成してこれを実現できます。代替手段を探しています。

何かのようなもの:

nodes.contains(obj)またnodes.indexof(obj)

照合するノード リストを取得する他の方法を含む解決策は受け入れられますが、それらが何であるかはわかりません。

4

5 に答える 5

14

これが NodeList の最初のレベルを超えて検索されるかどうかはわかりませんが、この式を再帰的に使用してトラバースし、要素 'obj' が NodeList 'nodes' にあるかどうかを確認できます。

[].indexOf.call(nodes, obj)
于 2014-10-09T13:19:56.140 に答える
7

私はこのようなことをしました:

Array.prototype.find.call(style.childNodes, function(child) {
  if(child.textContent.includes(drawer.id)) {
    console.log(child);
  }
});

うまくいくようです。child は別の html ノードであり、好きなように操作できます。

于 2016-05-10T18:08:24.707 に答える
6

そのための組み込みのDOMメソッドはないと思います。を再帰的にトラバースNodeListし、要素との同等性を確認する必要があります。別のオプションは、からElement.querySelectorAllの各第1レベルの要素で使用することNodeListです(たとえば、要素のIDを探します)。しかし、それがどれほど(旅館)効率的かはわかりません。

于 2012-10-19T18:49:49.897 に答える