来自id选择器的jQuery数组对象

时间:2013-02-05 01:12:18

标签: jquery arrays jquery-selectors

原始代码:

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会抛出一条错误消息:“容器未定义”。

为什么?

1 个答案:

答案 0 :(得分: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]);
    }
}