問題タブ [dom4]

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

javascript - HTMLCollectionを作成する

HTMLCollectionElement.prototype.childrenを返す必要があるシムをしようとしています

ありますwindow.HTMLCollection

でも

Firefox7とChromeをテストする

シミングとは別に、HTMLCollectionそれと相互作用する方法はありますか?

解決策を提案できる場合は、このgithubの問題に関するフィードバックも提供してください

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

javascript - querySelectorAll を使用する場合

私が書いたサンプルコードの一部で

そして、私はそれを置き換えることができると考えていました

var as = document.querySelectorAll("a.false");

次の事実を読んだ後

  • ふりをするブラウザーのサポートは問題ではありません (シムとポリフィルがあります)。
  • すべての要素を取得するためにQSAを使用する必要があるという一般的なjQueryの考え方にふりをしてください。
  • せっかちなのでqsa代わりに書きます。document.querySelectorAll

質問:通常の方法よりも QSA を優先する必要があるのはどのような場合ですか?

より優れたメソッド (byTagName、byClassName、byId) があるため、実行qsa("a")または実行が間違っていることは明らかです。qsa(".class")qsa("#id")

それqsa("div > p.magic")が賢明なユースケースであることも明らかです。

質問:しかしqsa("tagName.class")、QSA の適切な使用例はありますか?

さらに別として、と呼ばれるものもありますNodeIterator

QSA と NodeIteratorについて質問しました

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

javascript - NodeIterator を使用する場合

ベンチマークはQSA & を比較.forEachしますNodeIterator

今はどちらかNodeIteratorが悪いか、間違っています。

質問:いつ使用する必要がありNodeIteratorますか?

ご存じないかもしれませんが、DOM4 は NodeIterator が何であるかを指定しています

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

javascript - クロスブラウザ比較ドキュメントの位置

DOM4 compareDocumentPosition

私はcompareDocumentPositionを実装したい. Resig はまさにこれを行う上で素晴らしいスタートを切りました。私は彼のコードを取得し、それを整理しました

これは には機能しますが、またはElementには機能しません。これは、IE8 がこれらのノードで提供しないためです。(それはどちらも与えませんが、私はすでにその問題を修正しました)TextDocumentFragment.sourceIndex.contains

DOCUMENT_POSITION_FOLLOWINGおよびDOCUMENT_POSITION_PRECEDING+=4に対応するand+=2ビットを効率的に記述するにはどうすればよいですか。

追加の参照として、これら 2 つは DOM4 が定義するツリー順序によって定義されます。

オブジェクト A と B が同じツリーにあり、ツリーの順序で A が B より前にある場合、オブジェクト A はオブジェクト B よりも前になります。

オブジェクト A と B が同じツリーにあり、ツリー順で A が B の後にある場合、オブジェクト A はオブジェクト B をフォローしています。

ツリーの順序は事前順、深さ優先のトラバーサルです。

最新のブラウザーのほとんどはこれを実装しています (IE9 を含む)。したがって、IE8 で動作するものだけが必要です (IE6/7 は気にしませんが、うまく動作する場合は!)

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

javascript - モジュラー JavaScript イベント ライブラリ

DOM4 イベントを処理する小さなライブラリが必要です。DOM3 イベントの適切なサブセットで十分であることに失敗します。

それは存在しますか?

有効でない回答

  • 大規模なフレームワーク X (jQuery、mootools、prototype など) を使用する
  • IE8 で動作しないライブラリ
  • キャプチャ フェーズとバブル フェーズの両方を許可しないライブラリ。

IE8でのみ動作する必要があります

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

javascript - DOMErrors をスローするもの

序章

DOMErrorは、DOM によって定義されたインターフェースです。

ブラウザが対応しているか確認したい。素朴なチェックは

window.DOMError !== undefined

より良いチェックは、DOMError をスローするアクションを使用して、それをチェックすることです。

err instanceof DOMError === true

質問

DOMError をスローするアクションは何ですか?

0 投票する
5 に答える
2864 参照

javascript - hasChildNodes と firstChild の比較

上記の 2 つの疑似コードを比較すると、どちらも、子がなくなるまでdivtoの各子を追加します。fragment

  1. あなたはいつ好きですか、hasChildNodesまたはfirstChildそれらは同じように見えますか.
  2. API が非常に似ている場合、なぜ両方が存在するのでしょうか。toからhasChildNodes()強制できるのに、なぜ存在するのですかfirstChildnullfalse
0 投票する
1 に答える
4602 参照

javascript - DOM4: 非推奨のプロパティとメソッド、それはどういう意味ですか?

「警告: DOM Core 1、2、および 3 では、Attr は Node から継承されました。これは DOM4 には当てはまりません。Attr の実装を仕様に合わせるために、Node から継承しないように変更する作業が進行中です。 . Attr オブジェクトで Node プロパティまたはメソッドを使用しないでください. Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4) 以降, 削除されるものはコンソールに警告メッセージを出力します. コードを修正する必要があります.完全なリストについては、非推奨のプロパティとメソッドを参照してください。

ページを下にスクロールすると、Attr.name と Attr.value を使用した nodeName と NodeValue の置換が表示されます。

https://developer.mozilla.org/en/DOM/Attr#Deprecated_properties_and_methods

属性や childNodes などの他のメソッドにとって、それは実際には何を意味するのでしょうか? 参照は非推奨であると言っていますが、代替品はありません!

属性では非推奨ですが、ノードでも使用できますか?

Attr オブジェクト: http://www.w3schools.com/jsref/dom_obj_attr.asp

編集: DOM レベル 4 では Attr がノードから継承されなくなるため、nodeValue は属性 (Attr) に対してのみ廃止されます。

理解するのに役立つ簡単な例を次に示します。

おそらく、これにより、属性/ノードにアクセスするときに他の人が混乱するのを避けることができます:)