2012-05-08 9 views
7

"警告:DOM Core 1、2および3では、Nodeから継承されたAttrこれはDOM4のケースではありません。Attrの実装を仕様に戻すには、作業を進めていますGecko 7.0(Firefox 7.0/Thunderbird 7.0/SeaMonkey 2.4)から、削除されるものはコンソールに警告メッセージを出力します。それに応じてコードを修正する必要があります。完全なリストについては、非推奨のプロパティとメソッドを参照してください。DOM4:廃止されたプロパティとメソッド、それはどういう意味ですか?

ページをスクロールすると、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

編集:attrがDOMレベル4にはもうノードから継承しませんので、の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") 

属性/ノードにアクセスするときに、多分これは他の人への混乱を避けることができます:)

+0

私はAttrオブジェクト全体が廃止予定であると想定するのは安全だと思うし、それを使う理由は何も分かりません。 – jbabey

+0

@jbabey属性オブジェクトは廃止される予定ではありません。なぜなら、私の投稿を更新したからです。 – baptx

答えて

6

彼らが言っているのは、Attrのインスタンス(例: Element.getAttributeNode()によって返されたものなど)は、Nodeから継承したプロパティを使用していました。

DOM4ではそうではないため、この継承を削除しようとしています。このため、Attrオブジェクトのインスタンスを取得すると、the deprecated listにリストされているプロパティは、ドキュメント化されているとおりに動作します。

大きな質問:属性に対しては非推奨ですが、それはノードに対するものですか?:いいえ、推奨されていません。あなたはNodeのプロパティのリストを​​のドキュメントページから見ることができます。

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

+0

ノードの代わりにAttrを使用しているかどうかを知るにはどうすればいいですか?私がdocument.getElementsByTagName( "script")[2] .attributes [0] .nodeValueを使用しているときFirebugコンソールは "nodeValue属性の属性の使用は廃止されました。 しかし、あなたはnodeValueがAttrに対してのみ推奨されていないと言います。それが私が求めている理由です。 – baptx

+1

私はhttp://www.w3schools.com/jsref/prop_attr_name.aspにアクセスしているAttrオブジェクトです。その理由は.nodeValueの代わりに.valueを要求しています。 – baptx

+1

ありがとう@Matt私はあなたの答えをよく理解しています再読 – baptx

関連する問題