2

我有一个data()包含一些 json 的对象。

有没有办法可以遍历对象并获取每个部分的键和值?

这是我到目前为止所拥有的:

function getFigures() {

var propertyValue = getUrlVars()["propertyValue"];

$.getJSON(serviceURL + 'calculator.php?value=' + propertyValue, function(data) {

    figures = data.figures;
    $.each(figures, function(index, figure) {

        $('#figureList').append('<li> index = ' + data.figures.figure + '</li>');

    });

});

$('#figureList').listview('refresh');

}

json 看起来像这样:

{"figures":{"value":"150000","completion":"10.00","coal":"32.40","local":"144.00","bacs":"35.00","landRegistry":"200.00","solFee":"395.00","vatOnSolFees":79,"stampDuty":1500,"total":2395.4}}

抱歉,如果它很简单,我是 jQuery 新手,在 SO 上找不到任何有帮助的东西。

4

3 回答 3

5

你可以像这样得到keyandvalue

$.each(data.figures, function(key, val) {

        console.log('Key: ' + key + '  Val: ' + val)

    });​

因此,将您的代码更改为

 $('#figureList').append('<li>'+ index + ' = ' + figure + '</li>');

演示:http: //jsfiddle.net/joycse06/ERAgu/

于 2012-06-17T13:42:52.193 回答
0

参数indexfigure包含参数名称和值。我认为您想将参数连接到字符串中:

$('#figureList').append('<li>' + index + ' = ' + figure + '</li>');

另一种方法是创建列表项元素并设置它的文本,如果文本包含任何需要编码的字符,这也可以工作:

$('#figureList').append($('<li/>').text(index + ' = ' + figure));
于 2012-06-17T13:43:20.447 回答
0
function getFigures() {

   var propertyValue = getUrlVars()["propertyValue"];

   $.getJSON(serviceURL + 'calculator.php?value=' + propertyValue, function(data) {

       $.each(data['figures'], function(index, val) {

          here grab "val" is key 

          $.each(data['figures'][index], function(col, valc) {

           here grab "col" is value

          }
       }

   }      

再见

于 2012-06-17T13:50:49.320 回答