我正在尝试使用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;
}
答案 0 :(得分:2)
删除第一列并返回生成的html可能更好的方法是克隆表,从每个td
中删除第一个tr
元素,然后从克隆返回html
var myclone = $("#orders_table").clone();
myclone.find( "tr > td:first-child" ).remove();
var html = myclone.html();
答案 1 :(得分: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();
...
});