0

我正在尝试使用 jQuery 从 html 表中获取数据。

在我的情况下,我想获得没有第一列的表格。因为我想将表格导出到 excel 文件。但我的第一列包含单选按钮。删除它是无用且痛苦的。

任何人都可以改善这个质量。

桌子

<table id="orders_table">
<thead>
<tr>
<th> </th>
...
<th></th>
<tr>
</thead>
<tbody>
<tr>
<td><input type="radio"<td>
...
<td>data<td>
</tr>
</tbody>
</table>

我试过的jQuery代码

function getTable(){
    $("#orders_table");
    var html = "<table>";
    html += "<tr>";
    $.each($("#orders_table thead tr th "), function(i, d){//getting header
        if(i==0){}//do nothing
        else{
            html += "<th>" + $(this).html() + "</th>";
        }
    });

    html += "</tr>";
    $.each($("#orders_table tbody tr"), function(i, d){
        html += "<tr>";
        $.each($(d).find("td"), function(i2, d2){
            if(i2==0){} //do nothing
            if(i2==1){html += "<td>" + $(d2).html() + "</td>";}
            if(i2==2){html += "<td>" + $(d2).html() + "</td>";}
            if(i2==3){html += "<td>" + $(d2).html() + "</td>";}
            if(i2==4){html += "<td>" + $(d2).html() + "</td>";}
            if(i2==5){html += "<td>" + $(d2).html() + "</td>";}
            if(i2==6){html += "<td>" + $(d2).html() + "</td>";}
            if(i2==7){html += "<td>" + $(d2).html() + "</td>";}
            if(i2==8){html += "<td>" + $(d2).html() + "</td>";}
            if(i2==9){html += "<td>" + $(d2).html() + "</td>";}
            if(i2==10){html += "<td>" + $(d2).html() + "</td>";}
            if(i2==11){ html += "<td>" + $(d2).html() + "</td>";}
            if(i2==12){ html += "<td>" + $(d2).html() + "</td>";}
            if(i2==13){ html += "<td>" + $(d2).html() + "</td>";}
            if(i2==14){ html += "<td>" + $(d2).html() + "</td>";}
            if(i2==15){ html += "<td>" + $(d2).html() + "</td>";}
            if(i2==16){ html += "<td>" + $(d2).html() + "</td>";}
        });
        html += "</tr>";
    });


    html += "</table>";
    return html;
}
4

2 回答 2

2

删除第一列并返回结果 html 的更好方法可能是克隆表,td从 each 中删除第一个元素tr,然后从克隆中返回 html

使用类似http://jsfiddle.net/fKn6f/

var myclone = $("#orders_table").clone();
myclone.find( "tr > td:first-child" ).remove();

var html = myclone.html();
于 2013-07-23T04:53:19.107 回答
0

试试这个 jquery,更新你的eq依赖于你的 td 的索引

$("#orders_table tbody tr").each(function(i, d){
       var data1 =  $(this).find("td:eq(1)").text();
       var data2 =  $(this).find("td:eq(2)").text();
       var data3 =  $(this).find("td:eq(3)").text();
       ...
});
于 2013-07-23T05:13:31.020 回答