2

我真的是 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 行收到此错误:

未捕获的类型错误:无法调用未定义的方法“appendChild”

4

3 回答 3

10

getElementsByTagName(" ... ")返回元素的集合。

var divElement = document.getElementsByTagName("div")[0];

另外,改变:

document.divElement.appendChild(el); 

到:

divElement.appendChild(el);
于 2012-07-16T23:40:20.980 回答
1

您的变量名称之一有点误导,即divElement. 由于您使用的是getElementsByTagName()(notice 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);
    }
}());​

还有一个演示:http: //jsfiddle.net/UmKYq/5/

于 2012-07-16T23:46:40.660 回答
-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]);   

}
于 2013-06-02T07:40:34.313 回答