簡體   English   中英

動態循環遍歷json數據數組時不顯示ID(標題和值)

[英]Not to display the ID (title & value) while looping over json data array dynamically

我有一個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>';
});

您可以通過保留“ 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'
    ]
];

我找到了一種簡單的方法,只需添加以下內容即可跳過循環迭代的第一行

function(i) {
    if (i > 0)
        DoStuff();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM