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各 から最初の要素を削除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 に答える