2014-10-27 43 views
2

在这里,我需要显示基于从json数组中获得的动态值的div内容。如何根据从json数组收到的动态值显示div内容?

JSON对象

{"userid":"12345","cmpyname":"stackoverflow", 
    "starrays": [{"transaction":"7272785","value2":"GOOGLE"},  //Array [0] 
    {"transaction":"85785272","value2":"YAHOO"},     //Array [1] 
    {"transaction":"4774585","value2":"REDIFF"}],     //Array [2] 
    "value3":"95345"} 

从上述接收到的JSON对象,我值设置为相应的div元素如像下面。

$('#somedivid').html(data.userid);       //normal json object 
$('#somedivid').html(data.starrays[0].value2);    //json array object 
$('#somedivid').html(data.starrays[0].transaction);  //json array object 

在这里,如果我在value2transaction阵列的任何值,它应该显示外层div。 否则,它应该隐藏。

<div id="outer"> 
<div id="verbiage1" class="ver1"> 
     Value 2: 
    </div> 
    <div id="val"> 
     <!-- dynamic value populate here --> 
    </div> 
    <div id="verbiage2" class="ver2"> 
     Transaction: 
    </div> 
    <div id="amt"> 
      <!-- dynamic value populate here --> 
    </div> 
    </div> 

JSFIDDLE

如何做到这一点使用jQuery?

+1

:-I将有'if'语句来检查我们是否有数据(value2和transaction),如果没有,我会隐藏我不需要的div。我希望这能给你一个出发点。 – Alex 2014-10-27 14:28:49

+0

好的我在等待.. – 2014-10-27 14:45:57

回答

2

您可以用Jquery.trim检查内容是否完全空白。试试这个:

var val = $.trim($('#val').html()), 
    amt = $.trim($('#amt').html()); 
if(!val && !amt) { 
    $('#outer').hide(); 
    alert('No Value') 
} 

入住这DemoFiddle

+0

会检查这个...... – 2014-10-27 14:40:06

+0

@DineshKumar现在检查这个编辑 – DaniP 2014-10-27 15:07:14

+0

你的答案是写但只能纠正这一行var val = $ .trim($('#val')。html ()); – 2015-08-20 11:04:36

0

这是我不能完全肯定,但我会尝试这样的东西你正在寻找

var json = {"userid":"12345","cmpyname":"stackoverflow", 
"starrays": [{"transaction":"7272785","value2":"GOOGLE"},  //Array [0] 
{"transaction":"85785272","value2":"YAHOO"},     //Array [1] 
{"transaction":"4774585","value2":"REDIFF"}],     //Array [2] 
"value3":"95345"} 

if(json["starrays"].length > 0 && (json["starrays"][0].transaction != undefined 
           && json["starrays"][0].value2 != undefined)) { 
    $('#outer').show(); 
    $('#val').html(json["starrays"][0].value2); 
    $('#amt').html(json["starrays"][0].transaction); 
}