問題タブ [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.
javascript - HTMLCollectionを作成する
HTMLCollectionElement.prototype.children
を返す必要があるシムをしようとしています
でも
と
Firefox7とChromeをテストする
シミングとは別に、HTMLCollection
それと相互作用する方法はありますか?
解決策を提案できる場合は、このgithubの問題に関するフィードバックも提供してください
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について質問しました
javascript - クロスブラウザ比較ドキュメントの位置
私はcompareDocumentPositionを実装したい. Resig はまさにこれを行う上で素晴らしいスタートを切りました。私は彼のコードを取得し、それを整理しました
これは には機能しますが、またはElement
には機能しません。これは、IE8 がこれらのノードで提供しないためです。(それはどちらも与えませんが、私はすでにその問題を修正しました)Text
DocumentFragment
.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 は気にしませんが、うまく動作する場合は!)
javascript - DOMErrors をスローするもの
序章
DOMErrorは、DOM によって定義されたインターフェースです。
ブラウザが対応しているか確認したい。素朴なチェックは
window.DOMError !== undefined
より良いチェックは、DOMError をスローするアクションを使用して、それをチェックすることです。
err instanceof DOMError === true
質問
DOMError をスローするアクションは何ですか?
javascript - hasChildNodes と firstChild の比較
上記の 2 つの疑似コードを比較すると、どちらも、子がなくなるまでdiv
toの各子を追加します。fragment
- あなたはいつ好きですか、
hasChildNodes
またはfirstChild
それらは同じように見えますか. - API が非常に似ている場合、なぜ両方が存在するのでしょうか。toから
hasChildNodes()
強制できるのに、なぜ存在するのですかfirstChild
null
false
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) に対してのみ廃止されます。
理解するのに役立つ簡単な例を次に示します。
おそらく、これにより、属性/ノードにアクセスするときに他の人が混乱するのを避けることができます:)