3

私たち非jqueryjavaScript開発者の多くは、インターネットの永遠のすべてのために、 domElement.setAttributeとその姉妹関数を使用して、無数のdom要素をハックしています。

それでも、css、dom classNames、変数データの保存/取得など...

var b = document.getElementById("someDiv"); 
b.setAttribute("align", "center");

では、そのdomElement.setAttributeNSバリアントの目的/実際の使用法は何ですか?この質問は、Webブラウザの表示/使用に関するものです。そして、XMLのコンテキストではありません。setAttributeNSには多くの用途があります。

var d = document.getElementById("someDiv"); 
d.setAttributeNS("http://www.mozilla.org/ns/specialspace", "align", "center");
4

2 に答える 2

2

そうでdomElementはありませんhtmlElement

複数の名前空間の要素を使用するXMLから構築されたDOMを使用している場合に便利です。

(そして、名前空間が有用である理由を知りたい場合は、この質問を参照してください

于 2012-10-31T12:26:27.873 に答える
2

HTMLドキュメント(つまり、text/htmlパーサーによって作成されたドキュメントオブジェクト)では、実際には多くの用途はありませんsetAttributeNS

しかし、外部コンテンツ(つまり、SVG abd MathML)を解析するときにHTML5パーサーが実行する必要があることを見ると、次の表が見つかります。外部属性を調整します

そのため、一部の属性をXLink、XML、およびXMLNS名前空間に自動的に移動して名前を変更します。setAttributeやsetAttributeNSなどの関数を介してDOMを操作している場合、その自動移動と名前変更は行われないため、属性を正​​しい名前空間に入れるには、setAttributeNSを使用して属性を作成および変更する必要があります。

xlink:hrefsetAttributeNS()を介して設定されるこれらの中でおそらく最も一般的です

于 2012-10-31T13:26:06.393 に答える