7

「警告: 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) に対してのみ廃止されます。

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

<div id="myAttribute">myTextNode</div>

var myDiv = document.getElementById("myAttribute");

// If you want to get "myAttribute" from div tag

alert(myDiv.attributes[0].value);
// Correct way to get value of an attribute (displays "myAttribute")
alert(myDiv.attributes[0].nodeValue);
// Working too but deprecated method for Attr since it doesn't inherit from Node in DOM4 (.nodeValue is specific to a Node, not an Attribute)

// If you want to get "myTextNode" from div tag

alert(myDiv.childNodes[0].value);
// Not working since .value is specific to an attribute, not a Node (displays "undefined")
alert(myDiv.childNodes[0].nodeValue);
// Working, .nodeValue is the correct way to get the value of a Node, it will not be deprecated for Nodes! (displays "myTextNode")

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

4

1 に答える 1

6

彼らが言っているのは、Attrインスタンスであるオブジェクト (たとえば、 によって返されるオブジェクトなどElement.getAttributeNode()) は、 から継承されたプロパティを持っていたということNodeです。

しかし、これは DOM4 には当てはまらないため、この継承を取り除こうとしています。このため、オブジェクトのインスタンスを取得すると、非推奨リストAttrに記載されているプロパティは、ドキュメントに記載されているとおりに動作します。

大きな疑問:アトリビュートでは非推奨ですが、ノードでも使用できますか? : いいえ、非推奨ではありません。プロパティのリストは、独自のドキュメント ページNodeから確認できます。

Attrとにかく、オブジェクトはあまり使用されていません (これまでに? )。これはあなたに関係がありますか?

于 2012-05-08T13:11:58.100 に答える