2016-04-08 56 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

返回對象將是一個數組,如果另一個對象是數組,那麼你可以使用合併,但合併將簡單地將它們加在一起。你能描述你想達到的目標嗎?這個函數只是創建行元素並返回,那麼接下來呢?你如何使用它? –