問題タブ [nodelist]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
169 参照

javascript - 純粋なJSでDOM全体をループするための最も高速で安全で正しい方法は何ですか?

安全とは、によって作成された NodeListdocument.getElementsById('*');がライブ オブジェクトであることを意味します。一部の要素は、JS エンジンがループするときに動的に追加または削除されます。

私がやろうとしていることは、DOM全体をループすることです(これはグリースモンキースクリプトにあるため、通常のWeb使用ではありませんが、そこにも当てはまると思います)、ノードCSSがいくつかのルールに一致するかどうかを確認し、その変更に従ってCSS。

この処理には時間がかかります。また、Web サイトには複数のスクリプト (画像の変更/ニュース記事の変更など) が実行されているため、遅かれ早かれ DOM ノードの追加と削除が頻繁に行われるため、処理中にノードが消えてしまう場合があります。

そして、速いということは、再帰的に行う方が良いということです:

(ただし、これはnodeTypeのチェックに時間を浪費します)またはforループによる:

(しかし、これは最後に NodeList の変動する先端に遭遇するという問題があります)

0 投票する
2 に答える
20157 参照

java - NULL値を持つノードを返すDOMgetElementsByTagName()

次のようなXMLファイルがあります。

を使用すると、 withgetElementsByTagName("LEVEL2_ID")が取得されますが、これらのノードの値はNULLです(つまり、各結果ノードで)が返されます。どうしてこれなの?この場合、各ノードのコンテンツ値を取得する必要があります。NodeListNodesgetNodeValue()NULL2000

XML:

Javaでは、getElementsByTagName()で取得した最初のノードの値を出力するとNULLが返されます。

0 投票する
3 に答える
757 参照

xml - string-joinの結果タイプをNodeListに変換する

XPath式を評価するレガシーコードを処理する必要があります。これは、結果がNodeListに解決されることを期待しています。このコードはNodeListを使用して、XPath式によって選択されたノードの数を識別します。コードは、1つのノードが選択されている場合にのみ続行されます。

次に、戻り型がStringであるstring-join関数を使用する必要があります。別のXPath関数を使用してStringをNodeListに変換する方法はありますか?理想的には、文字列を、テキストコンテンツが文字列値となる1つの要素を持つNodeListに変換します。exsl:node-set()を試してみましたが、成功しませんでした(Saxon-HEプロセッサ)。

0 投票する
2 に答える
96 参照

javascript - []を介したNodeListへのインデックス作成は信頼性が高く、(理想的には)文書化されていますか?

完全に信頼できるものではなく、クロスブラウザNodeListを使用してインデックスを作成していますか?また、(個別に)どこかに文書化されていますか?例えば:[]item()

NodeList私の知る限り、インターフェイスの最新の定義はDOM3にあり、JavaScriptバインディングの最新のドキュメントはDOM2バージョンにあります。NodeListを介してsにインデックスを付けることについては何も見ていません[]が、人々がいつもそれを行っているのを目にします(そして、私は頻繁にそれを行っていますが、常に少し神経質になっています)。

だから私はIE6を含むたくさんのブラウザでそれを試しました、そしてそれは私がそれを試したすべての場所でチャンピオンになります(IE6、IE9、Chrome 16、Firefox 10、Firefox 5、Opera 11、Safari 5、Konqueror 4.7、Epiphany 3.0、Midori 0.4)。エッジケースのブラウザが何十もないことを除けば、これは素晴らしいことです。

だから私は以前にこの道を進んだことがある人からの意見を探しています。それは完全に信頼できるクロスブラウザであり、理想的にはどこにでも文書化されていますか?

0 投票する
2 に答える
2736 参照

javascript - JavaScript: nodeList の 1 回の繰り返しの childNode にアクセスできません

このマークアップを考えると:

そしてこの機能:

私の期待は、各アンカーのクラスが変更されることですが、関数を実行すると次のようになります。

私が使用する場合:

上記のコードの代わりに、リスト項目のクラス名が期待どおりに変更されます。

上記の関数に見られるように、ループを介して childNode の childNode にアクセスするにはどうすればよいですか?

ありがとうございました。

0 投票する
0 に答える
183 参照

dojo - Dojoノードリスト-トラバースエラー

DojoのNodelist-traverseメソッドの使用に問題があります。私はDojo1.4.3(CMSに必要で、現時点ではアップグレードできません)を使用しており、次のように始めています。

require呼び出しでエラーは発生しませんが、エラーなしでどのメソッドも使用できません。

エラーを誘発します:

そして、私はすべてのメソッドでそれを取得します:parents()、child()、sibling()、すべてがドキュメントページにリストされています:http://dojotoolkit.org/reference-guide/dojo/NodeList-traverse.html#dojo -ノードリスト-トラバース

私の目標は、親アンカータグにクラスを追加することですが、メソッドをロードすることすらできません。何が間違っているのかわからない。すべての入力を事前に感謝します。

0 投票する
2 に答える
22665 参照

java - ノードリストへのノードの追加

私の目的は、ノードを NodeList に一度に追加するのではなく、各反復でループに追加することです。NodeList のクラスとメソッドを調べましたが、有用なものは見つかりませんでした。とにかくこれを行うためのものはありますか、それとも他のインターフェイスを使用する必要がありますか? 以下のようなことをしようとしていますが、NodeList インターフェイスには「追加」メソッドがありません。どうすれば項目を追加できますか?

0 投票する
1 に答える
1184 参照

java - getChildNodes()は、XMLのルートに対してNULLを返します

私の目標は、オブジェクト内のXMLのルートを取得し、Nodeそれを評価することです。

私の問題 :

XMLファイルのROOTから式を評価しようとしていますが、このメソッドがあります(実装する必要があります):

Document次のように、すでにXMLを開いていると仮定します。

今私がこれをするとき、内部 public Object evaluate(String expression, QName returnType);

Eclispeは行「4」の後に言います:" DTMManagerDefault.getDTMHandleFromNode(Node) line: not available " しかし、行「3」では、Eclipseはルートの名前を生成します。これはinventory...

それで、私はどこで間違ったのですか?

どうしたの ?

みんなありがとう、ジャック

0 投票する
2 に答える
1894 参照

javascript - JavaScript の getElementsByClassName が配列ではないオブジェクトを提供するのはなぜですか?

特定のクラス名を持つページ上のすべての要素の JavaScript (jQuery を使用しない) のリストを取得しようとしています。したがって、次のように getElementsByClassName() 関数を使用します。

私のページには、「expand」クラスを持つ 3 つのアンカー要素があることに注意してください。この console.log() 出力

次に、キックのために、次のように expand_buttons を独自の配列にスローしました。

これは突然出力されます

ノードリストをクリックすると、ページ上の 3 つの「展開」アンカー要素の属性が表示されます。また、 w3schools テスト ページでコードを動作させることができたことも注目に値します。

document.getElementsByName を使用すると、実際には (コンソールに) 要素の配列が出力されることにも注意してください。ただし、その長さを尋ねると、0 と表示されます。array_name[0]通常どおり、オブジェクトをコンソールに出力すると、配列内に明らかに要素があるにもかかわらず、「未定義」が出力されます。

なぜこれが考えられるのか、誰にも分かりますか?私はDOM要素をループしたいだけで、バニラJavaScriptでコーディングを練習しようとしているので、現時点ではjQueryを避けています。

ありがとう、

パラゴンRG