这是jsfiddle ,首先按原样尝试脚本,然后注释最后一行并取消注释它之前的那一行,这将为我提供我想要的功能但使用错误的数据,基本上我想grub一个模板并将数据插入其中将其插入页面中的另一个元素之前。问题是我使用的方法需要我使用一个对象或 elementNode 来插入它,但是在获取模板后我留下了 html 导致错误:
错误:NOT_FOUND_ERR:DOM 异常 8
的HTML:
<section class="container well">
<header></header>
<section id="section">
<h4 id="heading">heading 4</h4>
<div id="div_1" class="divs">
<a href="#">file_1.jpg</a>
<button class="btn btn-mini btn-danger pull-right">✖</button>
</div>
<div id="div_2" class="divs">
<a href="#">file_2.jpg</a>
<button class="btn btn-mini btn-danger pull-right">✖</button>
</div>
<div id="div_3" class="divs">
<a href="#">file_3.jpg</a>
<button class="btn btn-mini btn-danger pull-right">✖</button>
</div>
<div id="div_4" class="divs">
<a href="#">file_4.jpg</a>
<button class="btn btn-mini btn-danger pull-right">✖</button>
</div>
<div class="clearfix">
<button class="btn btn-primary pull-right add">
Add items
</button>
</div>
</section>
<footer></footer>
</section>
<script type="template" id="template">
<div id="{{id}}">
<a href="#">{{fileName}}</a>
</div>
</script>
我的 JavaScript 代码:
$(document).on('click', '.add', function(e){
e.preventDefault();
e.stopPropagation();
target = document.getElementById($('.divs')[0].id);
template = document.querySelector('#template').innerHTML;
div = template
.replace(/{{id}}/g, '0')
.replace(/{{fileName}}/g, 'file_0');
//target.parentNode.insertBefore(document.createTextNode('AZERTY'), target);
target.parentNode.insertBefore(div, target);
});
再次感谢jsfiddle并提前致谢。