0

我有一个 json 数据对象,我用 $.each 循环它以动态检索数据,我想要做的是显示除 ID 值之外的所有值,我不希望 ID 显示在 html 中结构体。请问我该怎么做?谢谢你

这是我的 Json 数据对象:

$arrData['firstInfo']  = array('title'=> 'Cars');   
$arrData['secondInfo'] = array('id', 'reference', 'size','name');                                   
$arrData['thirdInfo']  = array(array('1', 'Ref12012', 'big', 'Toyota'),
                               array('2', 'Ref16489', 'small', 'Peugeot'),
                               array('3', 'Ref56479', 'medium', 'Mercedes')
                          );

这是我的代码:

Html += '<div>';                            
$.each(arrData['secondInfo'], function(Idx, currentValue) 
{
    Html += '<div>'+ currentValue +'</div>';
});
Html += '</div>';

$.each(arrData['thirdInfo'], function(Idx, currentValue){
    Html += '<div>';
    // columns
    $.each(currentValue, function(Idx, currentValueCol){
        Html += '<div>'+ currentValueCol +'</div>';                             
    });
    Html += '</div>';
});
4

2 回答 2

1

您可以通过保留“Id”字段的索引并在最后一个循环中使用它来实现这一点。在下面的小提琴中,indexOfIdField保留该数据。

var arrData = {"firstInfo":{"title":"Cars"},"secondInfo":["id","reference","size","name"],"thirdInfo":[["1","Ref12012","big","Toyota"],["2","Ref16489","small","Peugeot"],["3","Ref56479","medium","Mercedes"]]};
var Html = '';

Html += '<div>';
var indexOfIdField = -1;
$.each(arrData['secondInfo'], function(Idx, currentValue) 
{
     if(currentValue == 'id'){
          indexOfIdField = Idx;
      }else{
          Html += '<div>'+ currentValue +'</div>';
      }
    
});
Html += '</div>';

$.each(arrData['thirdInfo'], function(Idx, currentValue){
    Html += '<div>';
    // columns
    $.each(currentValue, function(Idx, currentValueCol){
    		if(indexOfIdField != Idx){
            Html += '<div>' + currentValueCol +'</div>';                             
        }
    });
    Html += '</div>';
});

 $('#content').html(Html);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="content">

</div>

我建议你以不同的方式定义你的数据数组。这样,您可以在循环时使用字段名称(Idx 变量)。

$arrData['firstInfo']  = array('title'=> 'Cars');   
$arrData['dataList'] = [
    [
        'id' => 1,
        'reference' => 'Ref12012',
        'size' => 'big',
        'name' => 'Toyota'
    ],
    [
        'id' => 2,
        'reference' => 'Ref16489',
        'size' => 'small',
        'name' => 'Toyota'
    ],
    [
        'id' => 3,
        'reference' => 'Ref56479',
        'size' => 'medium',
        'name' => 'Toyota'
    ]
];
于 2017-09-07T08:13:41.543 回答
0

我找到了一种简单的方法来跳过循环迭代的第一行,只需添加这个

function(i) {
    if (i > 0)
        DoStuff();
}
于 2017-09-07T08:57:02.623 回答