1

$.each関数を使用してオブジェクトをループしていますが、値が統一されていません。

私のコードの何が問題になっていますか?

var mainPageCircle = {
    circles: {
        c1: {
            color: '#730000',
            text: 'Content'
        },
        c2: {
            color: '#004f74',
            text: 'Consulting'
        },
        c3: {
            color: '#146c00',
            text: 'Commerce'
        }
    },
    radious: 100,
    stroke: 10,
    strokeColor: '#fff',
    opacity: 0.7
}

$.each(mainPageCircle, function(key, value) {
    var circles = value.circles,
        radious = value.radious;
    $.each(circles, function(index, c) {
        console.log(index, c); // i am getting error; i need index should be 0,1,2 and c should be : c1,c2,c3 values
    })
})
4

3 に答える 3

3

このようなもの?

var mainPageCircle = {
    circles :{
        c1:{color:'#730000',text:'Content'},
        c2:{color:'#004f74',text:'Consulting'},
        c3:{color:'#146c00',text:'Commerce'}
    },
    radious:100,
    stroke:10,
    strokeColor:'#fff',
    opacity:0.7
};

var i = 0;

$.each(mainPageCircle.circles, function(){
    console.log(i, this); 
    //i: current index
    //this: c1, c2 etc
    //use properties on this to fetch the values
    //this.color for example
    i++;
});​

keyループ内の現在のインデックスではなく、オブジェクトキーをフェッチするため、この例ではインデックス整数として使用できません。

フィドル

于 2012-11-06T09:00:18.987 に答える
3

それぞれが、定義されているサークルだけでなく、mainPageCircleのすべてのアイテムに対して実行されています。これはあなたが目指しているものかもしれません:

var mainPageCircle = {
    circles :{
        c1:{color:'#730000',text:'Content'},
        c2:{color:'#004f74',text:'Consulting'},
        c3:{color:'#146c00',text:'Commerce'}
    },
    radious:100,
    stroke:10,
    strokeColor:'#fff',
    opacity:0.7
    }
$.each(mainPageCircle.circles , function (key,value) {
       var circles = value,radious = mainPageCircle.radious;
       $.each(circles, function (index,c) {
            console.log(index,c);
        });
});
于 2012-11-06T09:11:28.097 に答える
2

あなたの意図はわかりませんが、おそらく次のようなことをするつもりでした。

var mainPageCircle = {
    circles :{
        c1:{color:'#730000',text:'Content'},
        c2:{color:'#004f74',text:'Consulting'},
        c3:{color:'#146c00',text:'Commerce'}
    },
    radious:100,
    stroke:10,
    strokeColor:'#fff',
    opacity:0.7
}

var circles = mainPageCircle.circles,
    radious = mainPageCircle.radious;
$.each(circles, function (index, c) {
    console.log(index,c); // c1, props, etc...
    console.log(parseInt(index,10)); // 1,2,3...
});
于 2012-11-06T09:01:10.913 に答える