我在这里做错了吗?我有一个标签数组,当我在数组上执行jQuery each()
时,它没有进入each()
我在每个标记中都有alert
但没有任何反应。我检查了我的错误日志控制台,没有错误。那么,我做错了什么?
var tags = new Array();
tags["video-games"] = "Video Games";
tags["sports"] = "Sports";
tags["movies"] = "Movies";
tags["board-games"] = "Board Games";
tags["news"] = "News";
tags["television"] = "Television";
tags["computers"] = "Computers";
tags["opinions"] = "Opinions";
tags["reviews"] = "Reviews";
function updateTags(){
console.log(tags);
$("div.tags > div > span:first-child").nextAll().remove();
$.each(tags, function(key, val){
$("div.tags > div").append("<span><a class='tag' href='/tags/" + key + "'>" + val + "</a></span>");
});
}
updateTags();
答案 0 :(得分:11)
阵列应该有数字索引 你创建了一个空数组,碰巧有一些属性。
您应该创建一个普通对象:
var tags = {
"video-games": "Video Games",
...
};
答案 1 :(得分:0)
所以在这种情况下
var tags = {};
tags["video-games"] = "Video Games";
tags["sports"] = "Sports";
tags["movies"] = "Movies";
tags["board-games"] = "Board Games";
tags["news"] = "News";
tags["television"] = "Television";
tags["computers"] = "Computers";
tags["opinions"] = "Opinions";
tags["reviews"] = "Reviews";
function updateTags(){
//console.log(tags);
$("div.tags > div > span:first-child").nextAll().remove();
for(var key in tags){
$("div.tags > div").append("<span><a class='tag' href='/tags/" + key + "'>" + tags[key] + "</a></span>");
}
}
updateTags();
应该工作。
答案 2 :(得分:0)
您的代码是对象和属性
var tags = {};
tags["video-games"] = "Video Games";
或
var tags = {
"video-games" : "Video Games";
};
然后
$.each(tags, function(key, val) {
$("div.tags > div").append("<span><a class='tag' href='/tags/" + key + "'>"
+ val + "</a></span>");
});