- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
这两者之间的真正区别是什么?我的意思是真正的,本质上的区别。常规 createElement
的 future 是什么?
Svg 是 xml,不是 html。我明白了。所以我们使用 createElementNS(ns_string, 'svg')
然后是 setAttributeNS(null,,)
。为什么?为什么不 setAttributeNS('my_ns',,)
?
为什么 ns_string
必须是 http://www.w3.org/2000/svg
而不是一些随机字符串?如果只有一个命名空间,命名空间有什么用?
ns
在常规 html 中的用途是什么?我是否应该将现有代码中的所有 createElement
实例更改为 createElementNS
?
我正在阅读 DOM-Level-2规范但我还是很困惑。
最佳答案
要了解命名空间试图解决的问题,请考虑文件扩展名。 3 个字母的文件扩展名在描述文件内容方面做得非常糟糕。它们是模棱两可的,不携带版本信息。 XML 命名空间使用更大空间的字符串、URI 来解决相同的问题,并使用短前缀,以便您可以在同一文档中简洁地混合多种 XML。
What's the purpose of namespace if there is only one name space?
有许多命名空间用于标识不同类型的 XML 以及这些类型的不同版本。
SVG 和 MathML 是两种 XML,每一种都有自己的命名空间,可以嵌入到 HTML5 中,它们通常使用另一种 XML 命名空间 XLink。许多其他具有相应命名空间的 XML 模式用于在客户端和服务器之间传递消息以及用于数据存储。
XHTML 试图将 HTML 表示为有效的 XML。它有自己的命名空间。
So we use createElementNS(ns_string, 'svg') And then setAttributeNS(null,,). Why? Why not setAttributeNS('my_ns',,)???
当使用带有命名空间 URI 的 createElementNS
时,您可能应该尝试始终将 setAttributeNS
与命名空间 URI 一起使用。
XML 是在多个步骤中定义的。该规范的第一个版本没有提及 namespace ,但保留了足够的语法,因此可以通过使用前缀和特殊的 xmlns
属性在没有 namespace 的 XML 之上指定具有 namespace 的 XML。 XML specification说:
"The Namespaces in XML Recommendation [XML Names] assigns a meaning to names containing colon characters. Therefore, authors should not use the colon in XML names except for namespace purposes, but XML processors must accept the colon as a name character."
XML namespace 让 XML 处理应用程序知道它们正在处理什么,并允许在同一个文档中混合使用多种 XML。
Why ns_string must be "http://www.w3.org/2000/svg"
这包括 SVG 版本标准化的年份,即 2000 年,因此它包含有用的信息。
当与 xmlns:svg
一起使用时,它还让浏览器知道 svg:
前缀表示 SVG 而不是 XML 的其他方言。
关于javascript - createElement 与 createElementNS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8173217/
我覆盖了React.createElement,但是jsx的按钮好像没有调用React.createElement。 React.createElement 没有获取到 jsx 的值作为按钮。 最佳答
我支持一些旧版 JavaScript。 在 IE8 中这有效: var hi = forms[i].document.createElement('INPUT'); 在 IE 11 中,该代码会引发异
我需要在 html 代码中查找并替换一些 html 元素(我遵循了这个答案:Getting an element from PHP DOM and changing its value),为此我检索了
我是 JavaScript 中 createElement 属性的新手。我需要从 MySQL 查询创建一个下拉菜单。我从 MySQL 查询创建了一个 PHP 数组,如下所示: 然后我写了JavaSc
function ytplayer_render_playlist(){ for(var i=0;i', { src: "http://img.youtube.com/vi/" + y
我有一些代码在 main.js 文件中复制 Javascript 重复示例: Example 1 for (i = userVote; i function createElement(elemen
.dot{ width: 8px; height: 8px; border-radius: 4px;
这个问题在这里已经有了答案: jQuery DOM changes not appearing in view source (5 个答案) 关闭 8 年前。 我编写此脚本是为了了解如何使用 cre
函数 A() { this.myProp = document.createElement("div"); function B(id) { this.myProp.id = id;
我有以下代码: function JS_Utils_BuildModal () { var objModal = document.createElement(
我的 React 应用程序出现了一些问题。我正在实现功能 authUser,现在我收到如下错误: TypeError: Cannot read property 'createElement' of
为什么会 console.log(document.createElement("p").appendChild(document.createTextNode("some text"))); 返回
我正在尝试创建一个元素并向其附加一个子节点,但我的返回只是一个没有该元素的字符串。 我首先创建元素 const li = document.createElement('li'); 其次,我使用以下命
为什么这段代码不起作用?当我使用注释部分而不是表格时,它起作用了......使用table为什么不能工作? function addLine() {
是否有任何解决方案可以在纯 JavaScript 中构建使用 in div 的多个 div? jQuery 版本 for (var i = 1; i new divs') } http://jsf
CSS div.online:last-child { color:green; } div.offline:last-child { color:green; } JavaScipt
我为我的网站下载了一个 livesearch JavaScript 插件,它可以工作,但我需要帮助来稍微修改它。 代码如下: $.ajax({url: $('base').attr('href
这是我要创建的 HTML: Tiana is ... keen to go to the ... market. 如您所见,有一个 包含散文句子的元素,中间带有选择框。 使用 $('#id').h
我正在尝试使用 document.createElement('circle') 来处理 svgs 但 Chrome 会创建一个结束标记来圈出 错误的结果。如何创建没有结尾的元素? 最佳答案 你可能
我正在尝试用 javascript 创建这个 html block : name }}" type="checkbox" class="minimal"> text 我有: var che
我是一名优秀的程序员,十分优秀!