DOM2 在Document 类型上新增了如下命名空间特定的方法:
createElementNS(namespaceURI, tagName),以给定的标签名tagName 创建指定命名空
间namespaceURI 的一个新元素;
createAttributeNS(namespaceURI, attributeName),以给定的属性名attributeName
创建指定命名空间namespaceURI 的一个新属性;
getElementsByTagNameNS(namespaceURI, tagName),返回指定命名空间namespaceURI
中所有标签名为tagName 的元素的NodeList。
使用这些方法都需要传入相应的命名空间URI(不是命名空间前缀),如下面的例子所示:
// 创建一个新SVG 元素
let svg = document.createElementNS(“http://www.w3.org/2000/svg”, “svg”);
// 创建一个任意命名空间的新属性
let att = document.createAttributeNS(“http://www.somewhere.com”, “random”);
// 获取所有XHTML 元素
let elems = document.getElementsByTagNameNS(“http://www.w3.org/1999/xhtml”, “*”);
这些命名空间特定的方法只在文档中包含两个或两个以上命名空间时才有用。
Element 的变化
DOM2 Core 对Element 类型的更新主要集中在对属性的操作上。下面是新增的方法:
getAttributeNS(namespaceURI, localName),取得指定命名空间namespaceURI 中名为
localName 的属性;
getAttributeNodeNS(namespaceURI, localName),取得指定命名空间namespaceURI 中
名为localName 的属性节点;
getElementsByTagNameNS(namespaceURI, tagName),取得指定命名空间namespaceURI
中标签名为tagName 的元素的NodeList;
hasAttributeNS(namespaceURI, localName),返回布尔值,表示元素中是否有命名空间
namespaceURI 下名为localName 的属性(注意,DOM2 Core 也添加不带命名空间的
hasAttribute()方法);
removeAttributeNS(namespaceURI, localName),删除指定命名空间namespaceURI 中
名为localName 的属性;
setAttributeNS(namespaceURI, qualifiedName, value),设置指定命名空间namespaceURI
中名为qualifiedName 的属性为value;
setAttributeNodeNS(attNode),为元素设置(添加)包含命名空间信息的属性节点attNode。
这些方法与DOM1 中对应的方法行为相同,除setAttributeNodeNS()之外都只是多了一个命名
空间参数。