【问题标题】:DOM injection without jquery [closed]没有jquery的DOM注入[关闭]
【发布时间】:2012-09-05 17:38:45
【问题描述】:

我想知道如何在不使用 jquery 库的情况下通过 DOM 注入来注入 HTML 标签。

我们想从一个外部 javascript 文件生成几个对象到原始页面,但我们不想依赖 jquery(因为它是 90kb)并且我们无法控制将使用我们的网站脚本。

【问题讨论】:

  • 你想在加载时还是稍后注入它们?
  • 好问题。我看到太多的问题在这里结束了,上面有 casperOne 的名字。我从谷歌来到这里并得到了答案。

标签: javascript html dom code-injection


【解决方案1】:

随便用

 object.innerHTML = "<br/><span>Text</span>"

或者使用 appendChild:

 var child = element.appendChild(child);

https://developer.mozilla.org/en-US/docs/DOM/Node.appendChild?redirectlocale=en-US&redirectslug=DOM%2Felement.appendChild

两者都有效。

【讨论】:

【解决方案2】:

您只是在寻找:

newNode = document.createElement(tagType);

parent.appendChild(newNode);

有关document级别函数的更多信息,请参阅https://developer.mozilla.org/en-US/docs/DOM/document

有关操作元素的方法,请参阅https://developer.mozilla.org/en-US/docs/DOM/element

【讨论】:

    【解决方案3】:

    如果您要创建许多元素并且它们包含在一个公共根节点中,我建议创建一个documentFragment 并将您需要通过createElement()appendChild() 方法生成的所有节点附加到其中

    然后只需将documentFragment 附加到文档中

    来自 MDN 参考:createDocumentFragment

    由于文档片段在内存中而不是主 DOM 树的一部分,因此将子片段附加到它不会导致页面重排(计算元素的位置和几何形状)。因此,使用文档片段通常会带来更好的性能

    【讨论】:

      猜你喜欢
      • 2015-09-20
      • 1970-01-01
      • 1970-01-01
      • 2011-07-16
      • 1970-01-01
      • 2012-12-01
      • 1970-01-01
      • 2015-06-18
      相关资源
      最近更新 更多