JavaScript:动态创建的 html-like 字符串不会转换为 html
JavaScript: Dynamically created html-like string won't tun into html
在 DOM 我已经有了包装纸
<div id="wrapper"></div>
我需要用一堆 div 填充它,每个 div 代表新的类别。
然后每个类别将填充代表该类别项目的各种卡片。像这样:
<div id="wrapper">
<div data-category="puppy">
Dynamically created category wrapper
<div class="puppy1">...</div>
<div class="puppy2">...</div>
</div>
<div data-category="cat">
...
</div>
</div>
我使用以下代码创建和填充类别,但我总是以空类别或内部字符串表示 html.
结束
var categoryWrapper = document.createElement("div");
categoryWrapper.setAttribute("data-category", key);
categoryWrapper.innerHtml = htmlString;
这是我的问题的 fiddle 演示。
https://jsfiddle.net/uuqj4ad5/
我将不胜感激。
打错了,innerHml
应该是 innerHTML
(Javascript object properties are case sensitive) 否则它只是添加一个额外的 属性 而什么也没有发生。
categoryWrapper.innerHTML = htmlString;
var htmlString = "<div class='card'><div class='cardImg'><img src='http://cdn.cutestpaw.com/wp-content/uploads/2012/07/l-Wittle-puppy-yawning.jpg' alt='Puppy'></div><div class='cardContent'><div class='cardInfo'><p>Puppy Yawning</p></div><div class='cardDesc'><p>Awww!</p></div></div></div>";
var outerWrapper = $("#wrapper");
var categoryWrapper = document.createElement("div");
categoryWrapper.innerHTML = htmlString;
outerWrapper.append(categoryWrapper);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<h3>
Under this title various categories should be dynamically created
</h3>
<div id="wrapper">outerWrapper waiting for dynamic data...</div>
</div>
innerHtml
应该是
innerHTML
Javascript 区分大小写
如果您正在使用 jQuery
为什么要混合使用 jQuery 和 Vanilla JS。
var outerWrapper = $("#wrapper");
// I created new categoryWrapper object
var categoryWrapper = $('<div/>', {
html: htmlString
});
debugger;
// WHen I have the category filled with inner data, I will append it into outerwrapper
outerWrapper.append(categoryWrapper);
查看我的 fiddle:-
https://jsfiddle.net/dhruv1992/1xg18a3f/1/
你的 js 代码应该是这样的
// This is dynamically filled html template. The data comes from some JSON.
var htmlString = "<div class='card'><div class='cardImg'><img src='http://cdn.cutestpaw.com/wp-content/uploads/2012/07/l-Wittle-puppy-yawning.jpg' alt='Puppy'></div><div class='cardContent'><div class='cardInfo'><p>Puppy Yawning</p></div><div class='cardDesc'><p>Awww!</p></div></div></div>";
// This outer wrapper will in the end contain few categories
var outerWrapper = $("#wrapper");
outerWrapper.append('<div>'+htmlString+'</div>')
在 DOM 我已经有了包装纸
<div id="wrapper"></div>
我需要用一堆 div 填充它,每个 div 代表新的类别。 然后每个类别将填充代表该类别项目的各种卡片。像这样:
<div id="wrapper">
<div data-category="puppy">
Dynamically created category wrapper
<div class="puppy1">...</div>
<div class="puppy2">...</div>
</div>
<div data-category="cat">
...
</div>
</div>
我使用以下代码创建和填充类别,但我总是以空类别或内部字符串表示 html.
结束var categoryWrapper = document.createElement("div");
categoryWrapper.setAttribute("data-category", key);
categoryWrapper.innerHtml = htmlString;
这是我的问题的 fiddle 演示。 https://jsfiddle.net/uuqj4ad5/
我将不胜感激。
打错了,innerHml
应该是 innerHTML
(Javascript object properties are case sensitive) 否则它只是添加一个额外的 属性 而什么也没有发生。
categoryWrapper.innerHTML = htmlString;
var htmlString = "<div class='card'><div class='cardImg'><img src='http://cdn.cutestpaw.com/wp-content/uploads/2012/07/l-Wittle-puppy-yawning.jpg' alt='Puppy'></div><div class='cardContent'><div class='cardInfo'><p>Puppy Yawning</p></div><div class='cardDesc'><p>Awww!</p></div></div></div>";
var outerWrapper = $("#wrapper");
var categoryWrapper = document.createElement("div");
categoryWrapper.innerHTML = htmlString;
outerWrapper.append(categoryWrapper);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<h3>
Under this title various categories should be dynamically created
</h3>
<div id="wrapper">outerWrapper waiting for dynamic data...</div>
</div>
innerHtml
应该是
innerHTML
Javascript 区分大小写
如果您正在使用 jQuery
为什么要混合使用 jQuery 和 Vanilla JS。
var outerWrapper = $("#wrapper");
// I created new categoryWrapper object
var categoryWrapper = $('<div/>', {
html: htmlString
});
debugger;
// WHen I have the category filled with inner data, I will append it into outerwrapper
outerWrapper.append(categoryWrapper);
查看我的 fiddle:- https://jsfiddle.net/dhruv1992/1xg18a3f/1/
你的 js 代码应该是这样的
// This is dynamically filled html template. The data comes from some JSON.
var htmlString = "<div class='card'><div class='cardImg'><img src='http://cdn.cutestpaw.com/wp-content/uploads/2012/07/l-Wittle-puppy-yawning.jpg' alt='Puppy'></div><div class='cardContent'><div class='cardInfo'><p>Puppy Yawning</p></div><div class='cardDesc'><p>Awww!</p></div></div></div>";
// This outer wrapper will in the end contain few categories
var outerWrapper = $("#wrapper");
outerWrapper.append('<div>'+htmlString+'</div>')