我已经编写了一些代码,可以使用本机javascript获取blogspot json数据,但是我想添加一个发布滑块,但是当我将一个变量点调用到posts类的类时,它将返回
未捕获的TypeError:无法读取未定义的属性“包含” 这是滑块代码
var item = document.querySelectorAll(".featured .item"),
slideLeft = document.getElementById("slideLeft"),
slideRight = document.getElementById("slideRight"),
current = 0;
function reset() {
for (var i in item) {
if (item[i].classList.contains("current")) {
item[i].classList.remove = "current"
}
}
}
function startSlide() {
reset();
item[0].classList.add("current");
}
function sLeft() {
reset();
item[current - 1].classList.add("current");
current--;
}
function sRight() {
reset();
item[current + 1].classList.add("current");
current++;
}
slideLeft.addEventListener("click", function() {
if (current === 0) {
current = item.length;
}
sLeft()
})
slideRight.addEventListener("click", function() {
if (current === item.length - 1) {
current = -1;
}
sRight()
})
startSlide()
Here是我创建的jsfiddle。
请给我一种在json帖子中添加幻灯片的方法
答案 0 :(得分:0)
您可以通过将//handle slider
代码包装在函数中并在JSONP响应返回时调用它来解决该错误。 see fiddle
现在您正在执行var item = document.querySelectorAll(".featured .item")
,直到响应返回并且HTML目前不存在,这意味着item
是一个空节点列表。
您将获得
“未捕获的TypeError:无法读取未定义的属性'包含'”
因为在reset()
中,您遍历了返回的空节点列表的 properties (不一定是您期望的节点),所以在这种情况下,继承的属性会通过循环-{ {1}}属性,但没有length
属性,因此classList
会返回该错误。
奖金信息:为防止循环访问对象原型链中的属性,您可以像这样对hasOwnProperty()进行检查:
item[i].classList.contains("current")