【问题标题】:How to pass a Javascript function in a dynamically created div如何在动态创建的 div 中传递 Javascript 函数
【发布时间】:2011-10-20 05:13:40
【问题描述】:

我想将一个 javascript 函数传递给一个动态创建的 div,就像我在下面尝试的那样。如果我用普通字符串替换脚本字符串,这是可行的,但是有没有办法在 createTextNode 中传递 JS 脚本?

    newDiv = document.createElement("div");
    newContent = document.createTextNode("<script type=\"text/javascript\">var pager = new Pager(3); pager.init(); pager.showPageNav('pager', 'pageNavPosition'); pager.showPage(1); </script>");
    newDiv.appendChild(newContent);

TIA

【问题讨论】:

  • 无论你想做什么,都有更好的方法来做。
  • 为什么要将 JavaScript 动态放入 &lt;div&gt; 标记中?无论这些功能做什么,它们都可以从&lt;div&gt;...
  • 当你像这样创建新的 div 时,你需要将该 div 附加到某个地方,在文档对象或任何节点或头部等中。

标签: javascript html dom


【解决方案1】:

&lt;script&gt; 标记不是文本节点。
您需要使用document.createElement 创建一个&lt;script&gt; 元素。

但是,您不应该这样做,除非您尝试动态加载外部脚本文件(例如 JSONP)

【讨论】:

    【解决方案2】:
    var js=document.createElement('script');
      js.setAttribute("type","text/javascript");
      js.appendChild(document.createTextNode(" var pager = new Pager(3); pager.init(); pager.showPageNav('pager', 'pageNavPosition'); pager.showPage(1); "));
      var newDiv=document.createElement("div");
      newDiv.appendChild(js);
      document.appendChild(newDiv);
    

    【讨论】:

      猜你喜欢
      • 2022-01-15
      • 2017-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-27
      • 1970-01-01
      相关资源
      最近更新 更多