javascript - 附加到无序列表时,无法在“节点”上执行“附加孩子”错误
问题描述
我正在尝试将<li>
数据中的项目列表附加到<ul>
. 当我执行 console.log 时,内容返回以下内容:
<li class="nav-item col-lg-2">
<a class="nav-link" href="#">Apple</a>
</li>
<li class="nav-item col-lg-2">
<a class="nav-link" href="#">Banana</a>
</li>
所以我尝试将它附加到section
并且它不允许我使用错误消息:Failed to execute 'appendChild' on 'Node'
. 我在这里做错了什么?谢谢!
var data = [{
"id": "1",
"name": "Apple"
},{
"id": "2",
"name": "Banana"
}];
var section = document.createElement("ul");
section.setAttribute('class', "col-12 nav nav-tabs nav-fill");
var template = document.querySelector('#lists').innerHTML;
var contents = '';
for(var i = 0; i < data.length; i++){
contents += template.replace(/\{\{name\}\}/, data[i].name);
}
section.appendChild(contents);
document.getElementById('test').appendChild(section);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<div class="row" id="test">
<script type="template" id="lists">
<li class="nav-item col-lg-2">
<a class="nav-link" href="#">{{name}}</a>
</li>
</script>
</div>
解决方案
您需要使用.insertAdjacentHTML()而不是.appendChild(contents); 因为您要添加的是 html 字符串而不是 html 节点。
var data = [{
"id": "1",
"name": "Apple"
},{
"id": "2",
"name": "Banana"
}];
var section = document.createElement("ul");
section.setAttribute('class', "col-12 nav nav-tabs nav-fill");
var template = document.querySelector('#lists').innerHTML;
var contents = '';
for(var i = 0; i < data.length; i++){
contents += template.replace(/\{\{name\}\}/, data[i].name);
}
section.insertAdjacentHTML('beforeend', contents);
document.getElementById('test').appendChild(section);
<div class="row" id="test">
<ul type="template" id="lists">
<li class="nav-item col-lg-2">
<a class="nav-link active" href="#">{{name}}</a>
</li>
</ul>
</div>
推荐阅读
- python - 需要有关 pycharm 中输出格式的帮助 - python
- javascript - 在 NodeJS 中的每个元素中加入表
- laravel - 如何设置数字存储为文本 laravel excel?
- php - 如何使用 Simple HTML DOM 在具有 data-reactid 的范围内获取值?
- python - BeautifulSoup - 网络爬虫搜索重复的链接
- elasticsearch - Elasticsearch 匹配给定较大文本中的所有关键字
- php - 当我使用 jQuery 的 $.ajax() 发送帖子数据时,我应该在服务器端使用什么类型的安全性?
- variables - 如何通过连接两个字符串来创建动态变量名
- html - 如何为Angular中的长下拉菜单设置滚动和插入符号上下动画
- python - 一维 N 皇后数组 (Python) 求解函数