2016-04-08 54 views
0

在这里我有和对象,我想动态地插入它的值。如何插入值到JavaScript对象通过使用jquery/javascript

 var mergTr={}; //object 
     for(dd in dispID) 
     { 
     var dataID=displayObj[dispID[dd]]; 
     if(dataObj[dataID]) 
     { var flag=0; 
      var valObj=dataObj[dataID]; 
      var Class2 = (clsNo==0)?"even":"odd"; 
      var cl_id=valObj["client_id"]; 
      var dataId=dataID; 
      var columnName=valObj["fieldname"]; 
      var valFilterObj={0:"",1:"",2:columnName,3:dataObj[dataID]["filter_type"],4:"",5:dataObj[dataID]["filter_auto"]}; 
      if(flag==0){ 
       for(vv in valFilterObj){ 
        tr=$("<tr/>"); 
        mergTr=tr; 
        tr.addClass(clsNo); 
        var td=$("<td/>"); 
        td.append(columnName); 
        tr.append(td); 
       } 
       $.merge(mergTr,tr); 
      } 
     } 
     } 

我想插入对象“TR”作为looping.But我不知道如何做到这一点。 $ .merge不起作用。如果我将直接分配'tr',那么它会替换旧的'tr'值。 任何人都可以帮助我这个请。

+0

您可以像下面这样为您的objet赋值:var mergTr = {}; // object mergTr.flag = 0; mergTr.valObj ='data'; ... – Steve

+0

@Steve对不起,我不明白这一点。你能否请你解释一下,或者你可以给我任何参考链接。 –

回答

1

如果您需要列表<tr>您应该有一个数组而不是对象。

var mergTr={}; // {} denotes object 
var mergTr=[]; // [] denotes array 

可以作为mergTr.push(trObject);

0

您应该使用数组存储在TR阵推的值,并在for循环使用VAR在本地重新定义TR然后添加到阵列。

var mergTr=[]; 

// the initial code 
// ... 
     if(flag==0){ 
       for(vv in valFilterObj){ 
        var tr=$("<tr/>"); 
        // Here the old tr is being re-assigned mergTr=tr; 
        tr.addClass(clsNo); 
        var td=$("<td/>"); 
        td.append(columnName); 
        tr.append(td); 
        mergTr.push(tr); 
       } 

      } 
+0

是的,我可以做到。但是当这个函数将对象返回到调用该函数的原始函数时,我需要将该对象与另一个对象进行合并。那么是否有可能与对象合并和排列? –

+0

返回对象将是一个数组,如果另一个对象是数组,那么你可以使用合并,但合并将简单地将它们加在一起。你能描述你想达到的目标吗?这个函数只是创建行元素并返回,那么接下来呢?你如何使用它? –