0

ここで何か間違ったことをしていますか?私はタグの配列を持っていますが、配列で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();
4

3 に答える 3

11

配列には数値インデックスが必要です。
たまたまいくつかのプロパティを持つ空の配列を作成しました。

代わりに通常のオブジェクトを作成する必要があります。

var tags = {
    "video-games": "Video Games",
    ...
};
于 2013-10-08T15:14:09.927 に答える
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();

動作するはずです。

于 2013-10-08T15:18:24.297 に答える
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>");

});
于 2013-10-08T15:21:16.270 に答える