注意:I do NOT to use any framework。
目标只是创建一个函数,该函数将返回一个基于HTML字符串的元素。
假设一个简单的HTML文档如下所示:
<html>
<head></head>
<body>
</body>
</html>
所有提到的函数都包含在head部分中,所有DOM创建/操作都是在脚本标记中主体的末尾完成的。
我有一个函数createElement,它接受格式良好的超文本标记语言字符串作为参数。它是这样的:
function createElement(str)
{
var div = document.createElement('div');
div.innerHTML = str;
return div.childNodes;
}
现在,当你像这样调用它时,这个函数工作得很好:
var e = createElement('<p id="myId" class="myClass">myInnerHTML</p>');
有一个小问题(可能是大问题),即创建的元素不是'true‘元素,它的parentNode仍然是'div’。如果有人知道如何解决这个问题,那就太棒了。
现在,如果我使用更复杂的字符串调用相同的函数:
var e = createElement('<p id="myId" class="myClass">innerHTML<h2 id="h2ID" class="h2CLASS">Heading2</h2></p>');
它创建两个孩子,而不是一个孩子,而另一个孩子又有另一个孩子。
一旦你做了div.innerHTML = str。innerHTML而不是
`<p id="myId" class="myClass">innerHTML <h2 id="h2ID" class="h2CLASS">Heading2</h2> </p>`
转到
`<p id="myId" class="myClass">innerHTML</p> <h2 id="h2ID" class="h2CLASS">Heading2</h2>`
问题:
在使用.innerHTML?
<p.myClass#myId>
、<h2.h2CLASS#h2ID>
和另一个<p>
https://stackoverflow.com/questions/3662821
复制相似问题