【问题标题】:JavaScript creating HTML5/XML element nodeJavaScript 创建 HTML5/XML 元素节点
【发布时间】:2013-11-30 22:09:04
【问题描述】:

要使用 JavaScript 创建要在 HTML5 文档中使用的元素,我们可以使用 DOMDocument 对象的 createElement() 和 createElementNS() 方法:

var node = document.createElement(element);
var node = document.createElementNS(nameSpace, element);

这些命令创建一个节点,然后我们可以使用appendChild() 将它放在文档树的某个点上。我的第一个问题是:document.createElement()document.createElementNS() 函数是否将它们返回的节点对象存储在 document 对象中的某个位置?

其次,是否可以创建一个独立于特定document 对象的元素节点对象(可能使用名称空间),然后将其附加到给定的某些documentobject 的文档树中?也就是说,是否有类似于createElement()createElementNS() 的函数不是特定对象的成员(如document 对象,如上例)?

第三,是否可以使用给定的文档对象document1 创建一个元素节点对象并将其附加到另一个文档对象document2 的文档树上?

【问题讨论】:

    标签: javascript html dom createelement


    【解决方案1】:

    我的第一个问题是:document.createElement() 和 document.createElementNS() 函数是否将它们返回的节点对象存储在文档对象的某个位置?

    不,实现可能会在内部执行类似的操作,但不会对外公开。

    是否可以独立于特定文档对象创建元素节点对象(可能使用名称空间),然后将其附加到给定文档对象的文档树中?

    这个问题的答案也是否定的:每个元素,一般来说,每个节点都绑定到用​​于创建它的文档对象,该对象由ownerDocument 属性引用。

    第三,是否可以使用给定的文档对象document1创建一个元素节点对象并将其附加到另一个文档对象document2的文档树上?

    是的,第二个文档必须通过adoptNode 方法采用节点。使用 DOM4 时,这种方法将大部分变得不必要,因为它主要用于在文档中插入外部节点之前,并且 DOM4 specifies 在这种情况下采用是隐含的。

    【讨论】:

    • 谢谢卡洛斯!说清楚一点,关于前两个问题,我们有一个ownerDocument 属性,它指的是用于创建元素节点对象的文档,但文档对象本身既没有指向创建的元素节点对象的指针,也没有数组包含使用它创建的所有元素节点对象。我没听错吧?
    • 没错,如果它没有插入到树中,就没有办法得到它,只知道所有者文档。如果我回答正确,请不要忘记接受它。
    • 再次感谢您!是的,我的问题得到了完全回答,我刚刚接受了它。不幸的是,我是 stackoverflow 的新手,我没有足够的声誉将其标记为有用,但它非常有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 2021-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多