jQuery each() 不起作用



我在这里做错了什么吗?我有一个标签数组,当我在数组上执行 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();

数组应具有数字索引。
您已经创建了一个空数组,该数组恰好具有一些属性。

您应该改为创建一个普通对象:

var tags = {
    "video-games": "Video Games",
    ...
};

所以在这种情况下

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();

应该工作。

你的代码是对象和属性

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>");
});

最新更新