原始代码:
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会抛出一条错误消息:“容器未定义”。
为什么?
答案 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]);
}
}