2011-06-27 30 views
0

我傳遞一個JSON對象給jQuery。我需要它來查看JSON對象,並有效地執行此操作。jQuery - 查看對象鍵=> val?

$(key).css('background-color', '#'+val); 

在php中我會使用foreach循環。 JavaScript有類似的東西嗎?我會如何去做這件事?

JSON

{ 
    '.one' : 'AAA', 
    '.two' : 'BBB' 
} 
+0

可能重複(http://stackoverflow.com/questions/1214873/iterating-an-object-屬性) –

+0

另請參閱:http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/ –

回答

0

這將工作:

var data = { 
    '.one' : 'AAA', 
    '.two' : 'BBB' 
}; 

for (var key in data) 
    if (typeof(data[key]) == 'string') 
     $(key).css('background-color', '#' + data[key]); 

一個的jsfiddle演示:

http://jsfiddle.net/r7s96/

+0

您應該使用'hasOwnProperty' – levu

+0

我想過濾掉所有非關鍵字,字符串成員。用hasOwnProperty添加另一個條件在這裏沒有意義。 – rciq

0

使用jQuery

var data = { 
    '.one' : 'AAA', 
    '.two' : 'BBB' 
}; 

$.each(data, function(key, value){ 
    $(key).css('background-color', '#' + value); 
}) 
1

使用jQuery.each方法

jQuery.each(JSONobject, function(key, value) { 
    $(key).css('background-color', '#'+value); 
}); 

您還可以使用this代替value的功能,因爲該功能在每個元素的上下文中執行。

2

在的jQuery的each function請看:[迭代的對象性質]的

var map = { 
    '.one': 'AAA', 
    '.two': 'BBB' 
}; 
$.each(map, function(key, val) { 
    $(key).css('background-color', '#'+val); 
}); 
1
jQUery has an each function 

$.each(yourJsonObject, function(key, value) { 
    //whatever processing 
});