我们中的许多非jquery javaScript开发人员一直在使用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");
答案 0 :(得分:2)
那是domElement
而非htmlElement
。
当您使用从XML构造的DOM时,它非常有用,它使用来自多个名称空间的元素。
(如果你想知道为什么名称空间有用,那么see this question)
答案 1 :(得分:2)
在HTML文档中(即text/html
解析器创建的文档对象)setAttributeNS
的用途确实不多。
但是如果看一下HTML5解析器在解析外来内容时需要做什么(例如SVG abd MathML),我们会找到this table: adjust foreign attributes。
因此它会自动移动并将一些属性重命名为XLink,XML和XMLNS名称空间。当您通过setAttribute和setAttributeNS等函数操作DOM时,不会发生自动移动和重命名,因此要将属性放入正确的命名空间,您需要使用setAttributeNS来创建和修改它们。
xlink:href
可能是通过setAttributeNS()