3

我们中的许多非 jquery javaScript 开发人员一直在使用domElement.setAttribute及其姊妹函数来破解无数的 dom 元素,直到互联网的永恒。

无论是 css、dom classNames、可变数据的存储/检索等......

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

那么其domElement.setAttributeNS变体的目的/实际用途是什么?这个问题是关于网络浏览器显示/使用的。而不是在 XML 的上下文中。其中 setAttributeNS 有很多用途。

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

2 回答 2

2

在 HTML 文档(即text/html解析器创建的文档对象)中,setAttributeNS.

但是如果看一下 HTML5 解析器在解析外来内容(即 SVG abd MathML)时需要做什么,我们会发现这张表:调整外来属性

因此它会自动将一些属性移动并重命名为 XLink、XML 和 XMLNS 命名空间。当您通过 setAttribute 和 setAttributeNS 等函数操作 DOM 时,不会发生自动移动和重命名,因此要将属性放入正确的命名空间中,您需要使用 setAttributeNS 来创建和修改它们。

xlink:href可能是通过 setAttributeNS() 设置的最常见的这些

于 2012-10-31T13:26:06.393 回答
2

domElement不是htmlElement

当您使用由 XML 构建的 DOM 并使用来自多个名称空间的元素时,它很有用。

(如果您想知道命名空间为何有用,请参阅此问题

于 2012-10-31T12:26:27.873 回答