問題タブ [htmlcollection]

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 投票する
0 に答える
747 参照

javascript - javascriptでDOM SVG要素を複製するには?

複数の HTMLCollection を配列に格納したいのですが、それらを動的にしたくありません。

今のところ、私の arrayhistoryでは、mysvgは動的 HTMLcollection です。私が電話したときが異なっていたとしてもhistory[0]、同じですhistory[1]saveToHistory() history[0]history[1]

mysvg押し込む前にのコピーを作成するhistoryことがこれを解決する方法だと思います...しかし、どうすればこれを行うことができますか?

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

javascript - for ループ内の HTML コレクションのイベント リスナーとクロージャ

コードは

そして、コンソール出力は

また、クリック機能のイベント ハンドラーが機能しません。次のように、クロージャーでハンドラーを分離しようとしました。

しかし、出力は同じです。したがって、2 つの質問があります。

1) 関数を呼び出さずにハンドラーとして設定した場合、コンソール出力に 7 つのハンドラー呼び出しの結果が含まれるのはなぜですか?

2) HTML コレクションの「for」ループでハンドラーを設定するにはどうすればよいですか?

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

javascript - htmlCollection が配列から継承されないのはなぜですか

htmlCollection が配列から継承されないのはなぜですか? スナップショットである配列とは対照的に、htmlCollection はライブ コレクションであることは理解していますが、それでも配列から継承することはできませんか?

htmlCollection を arrayに変換する明白な方法がありますが、それはそれを変換しています。デフォルトではそうではありません。

アップデート

これは、以下のコメントに関するものです。

HTMLCollectionは配列ですか?– @ウィンハウズ

コメントで説明されているように、これら 2 つの質問は大きく異なります。もう1つの質問は、上記の質問にも書いた2つの違いを説明しています。私の質問は、JavaScript のデフォルトの htmlCollection が配列から継承されないのはなぜですか。

2 つの質問の違いは、もう1 つの質問は「違いは何ですか」であり、私の質問は「なぜ違いがあるのか​​」です。

0 投票する
6 に答える
16327 参照

javascript - HTMLCollection からアイテムを削除するには?

以下のコードのように、HTMLCollection から項目を削除する Javascript コードがあります。splice が呼び出されると、次のようなエラーが表示されますallInputs.splice is not a function。要素の種類がボタンの種類でない場合は、HTMLCollection から項目を削除する必要があります。

質問: そのようなコレクションからアイテムを削除するにはどうすればよいですか?

削除されていないアイテムを配列に転送してから、元の HTMLCollection の代わりに配列を操作できますが、これを行うための他の短い方法があるかどうかはわかりません。

JavaScript コード

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

javascript - htmlCollection を Array 呼び出しに DRY アップする

.getElementBy...現在、JavaScript で DOM 呼び出しを使用している関数があります。

コードを使用する関数には、他にも多数の if ステートメントがあります。

また

理想的には、繰り返しをDRYしたいと思います:

ifしかし、要素がまだ入力されていないため、ステートメントの前に定義することはできません。したがって、空の配列とエラーでコードを実行しようとします。

助言がありますか?

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

javascript - element.children の console.log の長さは 0 ですが、後で展開すると 3 つのエントリが表示されます

私の JavaScript には、2 つの要素があります。

2 つの要素をログに記録したところ、次のように表示されます。

要素 1:

ここに画像の説明を入力

要素 2:

ここに画像の説明を入力

問題は:

  • console.log各要素の子 ( )をelement.children取得すると、明らかに要素のリストが返されます。
  • しかし奇妙なことに、1 つの要素は空 (長さ 0) ですが、展開すると 3 つの要素 (長さ 3) になります。

要素の子について以下のログを読むと、私が話していることが理解できます...

要素 1 (これは期待どおりに機能しています):

ここに画像の説明を入力

要素 2 (問題のあるもの):

ここに画像の説明を入力

ここで何が起こっているのか誰にも分かりませんか?子供の数について矛盾した報告がどうしてあり得るのでしょうか?

これを修正するにはどうすればよいですか? 子をループする必要がありますが、長さが明らかに 0 であるため、ループできません。

前もって感謝します!すべての助けに感謝します。

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

javascript - ライブおよび静的 NodeList

わかりました、それで私は静的で遊んでいました || 概念をテストしようとしているライブノードリスト、さまざまなシナリオを試しましたが、私の注意を引いた2つのシナリオがあります:

getElementsBy... はライブ ノード コレクションであるため、これは理にかなっています。そのため、更新後に再度値を要求すると、明らかに更新された値が返されます。

ただし、小さな変更を加えたシナリオ番号 2 では、「ライブ」ノードリストが静的として機能します。

だから私の質問は:ライブノードリストの長さプロパティを表すために作成された変数が、プロパティを追加せずにノードリストを直接表す変数の値のようにライブ値を返さないのはなぜですか。

私はできる限り物事を正確に説明しようとしています。前もって感謝します。それに費やした時間を感謝します。

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

javascript - for-of ループを使用して HTMLCollection オブジェクトを反復処理する

私はbabel-polyfillHTMLCollectionを使用しており、for-ofループを使用してオブジェクトを反復しようとしています:

動いていない。エラーが発生しますelements[Symbol.iterator] is not a function。正しく動作させるには?