2012-02-06 63 views
2

我有一些JavaScript在表格中创建一个行并向它添加单元格。我需要在第二个单元格上添加一个colspan = 2(A.K.A选择单元格)。但是我无法弄清楚在代码中进行最少更改的最佳方法,因为这会影响整个页面的更多代码。建议吗? (表ID =表5类= MYTABLE)添加一个colspan到一个JS生成的单元格

if(fltgrid) 
{ 
    var fltrow = t.insertRow(0); //adds filter row 
    fltrow.className = "fltrow"; 
    for(var i=0; i<n; i++)// this loop adds filters 
    { 
     var fltcell = fltrow.insertCell(i); 
     //fltcell.noWrap = true; 
     i==n-1 && displayBtn==true ? inpclass = "flt_s" : inpclass = "flt"; 

     if(f==undefined || f["col_"+i]==undefined || f["col_"+i]=="none") 
     { 
      var inptype; 
      (f==undefined || f["col_"+i]==undefined) ? inptype="text" : inptype="hidden";//show/hide input 
      var inp = createElm("input",["id","flt"+i+"_"+id],["type",inptype],["class",inpclass]);     
      inp.className = inpclass;// for ie<=6 
      fltcell.appendChild(inp); 
      if(enterkey) inp.onkeypress = DetectKey; 
     } 
     else if(f["col_"+i]=="select") 
     { 
      var slc = createElm("select",["id","flt"+i+"_"+id],["class",inpclass]); 
      slc.className = inpclass;// for ie<=6 
      fltcell.appendChild(slc); 
      PopulateOptions(id,i); 
      if(displayPaging)//stores arguments for GroupByPage() fn 
      { 
       var args = new Array(); 
       args.push(id); args.push(i); args.push(n); 
       args.push(display_allText); args.push(sort_slc); args.push(displayPaging); 
       SlcArgs.push(args); 
      } 
      if(enterkey) slc.onkeypress = DetectKey; 
      if(on_slcChange) 
      { 
       (!modfilter_fn) ? slc.onchange = function(){ Filter(id); } : slc.onchange = f["mod_filter_fn"]; 
      } 
     } 

     if(i==n-1 && displayBtn==true)// this adds button 
     { 
      var btn = createElm(
            "input", 
            ["id","btn"+i+"_"+id],["type","button"], 
            ["value",btntext],["class","btnflt"] 
           ); 
      btn.className = "btnflt"; 

      fltcell.appendChild(btn); 
      (!modfilter_fn) ? btn.onclick = function(){ Filter(id); } : btn.onclick = f["mod_filter_fn"];     
     }//if  

    }// for i  
}//if fltgrid 

回答

2

如果我理解正确的话,你可以在else if代码块更改为以下:

var slc = createElm("select",["id","flt"+i+"_"+id],["class",inpclass]); 
slc.className = inpclass;// for ie<=6 
fltcell.appendChild(slc); 
fltcell.setAttribute("colspan",2); 
PopulateOptions(id,i); 
+0

切中要害,谢谢 – 2012-02-06 23:33:05

相关问题