将colspan添加到JS生成的单元格中

时间:2012-02-06 23:11:04

标签: javascript html

我有一些JavaScript在表中创建一行并向其中添加单元格。我需要在添加的第二个单元格(A.K.A选择单元格)上放置一个colspan = 2,但我无法找到代码中变化最小的最佳方法,因为这会影响整个页面的更多代码。建议? (table id = table5 class = mytable)

    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

1 个答案:

答案 0 :(得分: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);