我真的是Javascript的初学者,并尝试在此HTML中的p
元素中添加div
元素:
<!doctype html>
<html>
<head>
</head>
<body>
<p>This is paragraph 1.</p>
<p>This is paragraph 2.</p>
<p>This is paragraph 3.</p>
<p>This is paragraph 4.</p>
<div>
<p id="foo">This is paragraph 5.</p>
</div>
<script type="text/javascript" src="script.js"></script>
</body>
</html>
使用此代码:
(function(){
var divElement = document.getElementsByTagName("div");
el = document.createElement("p");
content = document.createTextNode("This is text");
el.appendChild(content);
document.divElement.appendChild(el);
}());
但是我在第6行得到了这个错误:
未捕获的TypeError:无法调用未定义的方法'appendChild'
答案 0 :(得分:8)
getElementsByTagName(" ... ")
返回元素集合。
var divElement = document.getElementsByTagName("div")[0];
另外,改变:
document.divElement.appendChild(el);
要:
divElement.appendChild(el);
答案 1 :(得分:1)
您的一个变量名称有点误导,即divElement
。由于您使用的是getElementsByTagName()
(注意elements
),因此它将返回元素列表,而不是单个元素。因此,您应该将变量命名为divElements
,以减少其混淆。
我已修改您的代码以使用元素列表:
(function() {
var divElements = document.getElementsByTagName("div");
var el = document.createElement("p");
var content = document.createTextNode("This is text");
el.appendChild(content);
for (var i = 0; i < divElements.length; i++) {
divElements[i].appendChild(el);
}
}());
答案 2 :(得分:-1)
var div = document.createElement("div");
document.lastChild.appendChild(div);
var a=[];
var n=[];
var txt=["Lovey", "komal", "Sona", "Purvi", "Sanchi"];
for (i=0; i<=txt.length; i++)
{
a[i]=document.createElement("a");
a[i].setAttribute("href","#");
n[i].appendChild(n[i]);
div.appendChild(n[i]);
div.appendChild(a[i]);
}