动态循环 json 数据数组时不显示 ID(标题和值)
Not to display the ID (title & value) while looping over json data array dynamically
我有一个 json 数据 Object,我用 $.each 遍历它以动态检索数据,我想做的是显示除一个值之外的所有值,即 ID,我不希望 ID 显示在 html 结构中。请问我该怎么做?谢谢
这是我的 Json 数据 Object :
$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" 字段的索引并在最后一个循环中使用它来实现。在接下来的 fiddle 中,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>
I suggest you to define your data array in a different way. In this
way, you may use field names while looping (Idx variable).
$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();
}
我有一个 json 数据 Object,我用 $.each 遍历它以动态检索数据,我想做的是显示除一个值之外的所有值,即 ID,我不希望 ID 显示在 html 结构中。请问我该怎么做?谢谢
这是我的 Json 数据 Object :
$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" 字段的索引并在最后一个循环中使用它来实现。在接下来的 fiddle 中,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>
I suggest you to define your data array in a different way. In this way, you may use field names while looping (Idx variable).
$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();
}