javascript - html + javascript 中的属性命名空间有什么用? (setAttributeNS)

标签 javascript html dom

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

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

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");

最佳答案

在 HTML 文档(即由 text/html 解析器创建的文档对象)中,setAttributeNS 的用途并不多。

但是如果看一下 HTML5 解析器在解析外部内容(即 SVG abd MathML)时需要做什么,我们会发现 this table: adjust foreign attributes .

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

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

关于javascript - html + javascript 中的属性命名空间有什么用? (setAttributeNS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13157896/

相关文章:

javascript - 如何使用 moment js 查找季度剩余天数

javascript - 我什么时候应该使用 KnockoutJS 组件和模板?

javascript/jquery 根据输入到文本输入字段中的值更改 html 元素

html - 当前在网络上使用 MP4/视频的最佳做法是什么?

javascript - DOM 操作哪个更好——DOM API 还是 innerHTML?

PHP: header 替代方案?

php - 除非删除 PHP 代码,否则不会显示登录页面

javascript - 如何简化以下代码?

javascript - 如何使用 jquery 将所有正文内容包装在一个 div 中?

javascript - DOM API 在创建/操作节点时是否使用构造函数和原型(prototype)?