javascript - 未捕获的 TypeError : p. appendChild 不是函数

标签 javascript ajax

我正在上 Ajax 类(class),这个非常简单的脚本抛出了一个我不明白的错误。我一直收到未捕获的类型错误,说 appendChild 方法不是函数。

我正在使用的函数旨在在单击链接时将文本文件的内容异步加载到“p”标记中。

我对 javascript 有点陌生,所以它可能是我错过的一些简单的东西,如果能帮助我理解我做错了什么,我将不胜感激。

(function(){

var link = document.getElementsByTagName('a')[0];

link.onclick = function(){

    //create xhr object
    var xhr = new XMLHttpRequest();

    // handle the "onreadystatechange" event
    /*
    xhr.readysState property values
    0 = Uninitialized
    1 = Loading
    2 = Loaded
    3 = Interactive - server is sending a response
    4 = Complete
    */
    xhr.onreadystatechange = function() {

        if ( (xhr.readyState == 4) && (xhr.status == 200 || xhr.status == 304) ) {

            xhr.responseText;

            var body = document.getElementsByTagName('body')[0];
            var p = document.getElementsByTagName('p');
            var pText = document.createTextNode(xhr.responseText);

            console.log(p);
            console.log(pText);

            p.appendChild(pText);
            body.appendChild(p);
        }

    };

    // open the request
    /* arguments: 
    1. type of request a (GET or POST) 
    2. path 
    3. asynchronaus request? (true || false)*/
    xhr.open('GET', 'files/ajax.txt', true);  

    // send the request
    xhr.send(null)

    return false; // disable default behavior of link
};

})();

我创建了一个 jsFiddle 来显示我的代码: http://jsfiddle.net/scottm1164/656edjsf/

最佳答案

getElementsByTagName返回一个 NodeList。因此,您必须访问具有类似索引的单个项目

var p = document.getElementsByTagName('p')[0];

它给你的原因

p.appendChild is not a function

是因为appendChild不是NodeList类型的函数

关于javascript - 未捕获的 TypeError : p. appendChild 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30443718/

相关文章:

javascript - 在 Javascript 中复制和裁剪图像

javascript - React Remove Bootstrap 按钮轮廓

c# - 将 jQuery 更新到 1.10.2 后,Ajax 调用后 jQuery 范围 slider 无法工作

javascript - 如何在 JS 类中对函数进行排队,直到完成基本的 ajax 请求

javascript - 为什么我不能使用 curl_setopt 和 Ajax jquery 获取数据?

ajax - 我怎样才能让 jsonp 与我的类(class)融洽相处?

javascript - 操作 DOM 时究竟更新了什么

javascript - 如何正确配置 module.alias

javascript - 使用 JavaScript 将对象值替换为同一键的其他对象的值

javascript - Jssor - 未捕获类型错误 : Cannot read property 'currentStyle' of undefined