1

私はここで本当に単純なものが欠けていることを知っていますが、私はしばらくの間探していて、解決策を見つけることができませんでした。

このようなjsonデータがあります

post[{
//various post data
categories": {

    "Rants": {
        "name": "Rants",
        "slug": "rants",
        "description": "",
        "post_count": 9
}]

each()ループを使用してカテゴリスラッグを返そうとしています

$.each(response.posts[0].categories, function (index) {
                alert(response.posts[0].categories.index.slug);
});

電話をかけalert(response.posts[0].categories.rants.slug);たときは機能しますが、インデックスをキーとして使用しようとしたときは機能しません。

何か案は?

4

4 に答える 4

2

あなたがこれを書くとき:

alert(response.posts[0].categories.index.slug);

存在しないcategoriesという呼び出されたプロパティを読み取ろうとしています。"index"本当にすべての要素を読みたい場合は、次のように書く必要があります。

alert(response.posts[0].categories[index].slug);
于 2013-03-10T10:34:21.773 に答える
1
$.each(response.posts[0].categories, function(name, category) {
    alert(category.slug);
});
于 2013-03-10T10:29:21.717 に答える
1

そのはず

 alert(response.posts[0].categories[index].slug);

より詳しく

jQueryがこれを処理します。.each()コールバック関数の最初の引数は、ループの現在の反復のインデックスです。2番目は現在一致しているDOM要素です。

$('#list option').each(function(index, element){
  alert("Iteration: " + index)
});

編集1

これがeachAPIリンク です
http://api.jquery.com/each/

于 2013-03-10T10:33:33.723 に答える
0

ここではjQueryは必要ありません。邪魔になっているようです。単に行う:

alert(response.posts[0].categories.Rants.slug);

categoryまたは、すべての「暴言」(内categories)をループします。

for (var category in response.posts[0].categories) {
  alert(response.posts[0].categories[category].slug)
}
于 2013-03-10T10:32:37.580 に答える