微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用特定的ID在DIV内使用JavaScript动态添加HTML元素

好的,我需要你的帮助.我在Stackoverflow找到一些代码(找不到链接),它通过JS动态生成HTML代码.这里是代码
function create(htmlStr) {
    var frag = document.createDocumentFragment(),temp = document.createElement('div');
    temp.innerHTML = htmlStr;
    while (temp.firstChild) {
        frag.appendChild(temp.firstChild);
      }
        return frag;
    }

    var fragment = create('<div class="someclass"><a href="www.example.com"><p>some text</p></a></div>'); 

    document.body.insertBefore(fragment,document.body.childNodes[0]);

这段代码工作很好!但是生成代码页面顶部,正好在body标签之下.我的愿望是在具有id =“generate-here”的空格中生成代码.

所以输出将是:

<div id="generate-here">
    <!-- Here is generated content -->
</div>

我知道我看不到使用“查看源”生成内容.我只需要在#generate-here这个特定的地方生成那个内容.我是Javascript noob,所以如果有人可以重新安排这个完美的代码.非常感谢!

附:我知道如何使用Jquery来做这件事,但是在这种情况下我需要纯粹的纯Java.

解决方法

所有你需要做的是改变最后一行.这将添加创建的元素作为div的最后一个小孩:
document.getElementById("generate-here").appendChild(fragment);

这将添加创建的元素作为div的第一个孩子:

var generateHere = document.getElementById("generate-here");
generateHere.insertBefore(fragment,generateHere.firstChild);

您也可以使用innerHTML来替换新文本(如同在创建函数中所做的那样).显然,这不需要你保留创建函数,因为你需要一个HTML字符串而不是一个DOM对象.

var generateHere = document.getElementById("generate-here");
generateHere.innerHTML = '<div class="someclass"><a href="www.example.com"><p>some text</p></a></div>';

原文地址:https://www.jb51.cc/css/217178.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。