0

Ajax 调用一个由四个字符串组成的数组,然后我想将每个字符串打印到一个新行。我有这个代码:

window.onload = function () {
    var obj;
    var xmlhttp;

    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    } else {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            obj = JSON.parse(xmlhttp.responseText);

            for (var i = 0; i <= obj.length; i++) {
                document.createTextNode(obj[i]);
            }
        }
    }

    xmlhttp.open("GET", "verify.php", true);
    xmlhttp.send();
}

但是,它不起作用。obj.length返回4,我不知道循环是否没有执行,或者我是否无法访问 DOM?我对 Javascript 和 DOM 脚本非常陌生。

提前致谢。

4

2 回答 2

5

您需要将节点实际放入文档中。

var node;
for (var i = 0, n = obj.length; i < n; i++) {  // NB: not <=
    node = document.createTextNode(obj[i]);
    document.body.appendChild(node);

    node = document.createElement('br');
    document.body.appendChild(node);
}
于 2012-08-01T17:37:39.543 回答
2

这只会创建 textNode,您仍然必须通过 appendChild 将其应用到 DOM:

https://developer.mozilla.org/en/DOM/document.createTextNode

于 2012-08-01T17:37:11.897 回答