0

原始代码:

var myContainer = document.getElementsByClassName("containerName");

for (var i=0; i<list.length; i++) {
    actionRequest(myContainer[i]);
}

function actionRequest(container) {
    $.getJSON(url, function(data) {
        var array = [];
        var object = {//create objects};
        array.push(object);
    }
    container.innerHTML = '';

    $.each(array, function(idx, value) {
        container.innerHTML += '....';
    }
}

这工作得很好。但是,一旦我将 id 分配给“containerName”而不是类名:

 var myContainer = document.getElementById("containerName");

console.log 向我抛出一条错误消息:“容器未定义”。

为什么?

4

1 回答 1

0

getElementsByClassName返回一个节点列表,但getElementById返回一个节点,所以如果你想使用它,你可以删除for循环actionRequest并直接在结果上调用它getElementById


丑陋的是,您可以检查第一个元素是否存在以确定是否应该执行循环:

if (typeof myContainer[i] === 'undefined') {
    actionRequest(myContainer);
}
else {
    for (var i=0; i<list.length; i++) {
        actionRequest(myContainer[i]);
    }
}
于 2013-02-05T01:23:49.657 回答