这是工作https://jsfiddle.net/w0m89w3e/1/
这不起作用https://jsfiddle.net/op488m49/1/
HTML
<div id="add">add block</div>
<div id="new_b"></div>
JS 1
var div = '';
add.onclick = function() {
var div = document.createElement('div');
div.className = "alert";
div.id = "vv";
div.innerHTML = "<strong>Yes!</strong> ";
new_b.appendChild(div);
};
JS2
add.onclick = function() {
var div = '<div id="a"><p class="my">text</p></div>'
new_b.appendChild(div);
};
错误:
未捕获的ReferenceError:未定义new_b HTMLDivElement.add.onclick
如果我需要将复杂的DIV加载到具有多个嵌套级别的新块中,我该怎么办?
答案 0 :(得分:1)
add.onclick = function() {
var div = '<div id="a"><p class="my">text</p></div>'
new_b.appendChild(div);
};
在这种情况下,变量div
只是一个字符串。您需要在appendChild中使用DOM元素。在第一种情况下,div
是元素
您可以将insertAdjacentHTML
用于复杂的div
https://jsfiddle.net/op488m49/2/
add.onclick = function() {
var div = '<div id="a"><p class="my">text</p></div>'
new_b.insertAdjacentHTML( 'beforeend', div );
};
答案 1 :(得分:0)
您没有创建DIV。您需要在追加它之前创建它(或任何元素)。 你是什么意思&#34;复杂的DIV&#34;?你能举个例子吗?
答案 2 :(得分:0)
{{1}}