0

多数の画像がある画像配列があります。修正されていません。1つまたは2つまたは8つの場合があります。画像の数が固定されている場合、次のようなコードを使用していました

var details = {

    image1: {
        position: 0,
        title: $slideDiv.children().eq(0).attr("alt")
    },
    image2: {
        position: -400,
        title: $slideDiv.children().eq(1).attr("alt")
    },
    image3: {
        position: -800,
        title: $slideDiv.children().eq(2).attr("alt")
    },
    image4: {
        position: -1200,
        title: $slideDiv.children().eq(3).attr("alt")
    },
    image5: {
        position: -1600,
        title: $slideDiv.children().eq(4).attr("alt")
    }

}; //end of var details

しかし今、私は配列に画像を持っています。詳細オブジェクトに、配列内の画像の数と同じ画像が追加されていることを望みます。私はこのようなことを試しました

var details = {};
var position = 0;
images.each(function(index){
    details.("image" + index) : {
        position: position,
        title: $slideDiv.children().eq(index).attr("alt")
    }

    position += -400;

}) ; //end of .each()

私が作成しようとしているロジックは、画像配列に2つの画像がある場合、次のようになるはずです

var details = {
    image1: {
        position: 0,
        title: $slideDiv.children().eq(1).attr("alt")
    },
    image2: {
        position: -400,
        title: $slideDiv.children().eq(2).attr("alt")
    }

}

しかし、これは機能していません。もちろん、私の構文は間違っています

details.("image" + index) : {..}

これどうやってするの?

ありがとう

4

2 に答える 2

1

Javascript では、次の 2 つの方法のいずれかでプロパティにアクセスできます。

obj.property

と同等です

obj["property"]

したがって、あなたの場合、次のように書きたいと思うでしょう:

details["image"+index]
于 2012-04-04T04:59:41.743 に答える
0

正しい構文は次のとおりです。後でなどからdetails['image' + index]アクセスできます。details.image0details.image1

したがって、次のようになります。details['image' + index] = {prop: val}

于 2012-04-04T05:04:03.830 に答える