0

必要性:テーブルのデータをコンマ区切りの値に変換したい。

問題:テーブルセルに別のテーブルがある可能性があります。(例:行1、セル3にはテーブルが含まれています)スクリプトはネストされたテーブルに対して実行し、列を1回だけキャプチャする必要があります。ここでは「Col3」を2回キャプチャしています。ネストされたテーブルの数は不明です。汎用スクリプトである必要があります。

ありがとうございました。

私のHTMLファイル:

<html>
 <head>
  <script src="http://code.jquery.com/jquery-1.4.4.min.js" type="text/javascript"></script> 
 <script src="jquery.table2csv.0.1.1.min.js" type="text/javascript"></script> 
 <script type="text/javascript">
 jQuery(function() {
  jQuery("#tableone").table2csv({
   callback: function (csv) {
    //alert(csv);
   }
  });
 });
</script>
</head>
<body>
 <table id="tableone" style="width:100%;">
  <tbody>
   <tr>
    <td>
     <div >
      Col 1
     </div>
    </td>
    <td >
     <div >
      Col 2
     </div>
    </td>
    <td >
     <div >
      <table >
       <tbody>
        <tr>
         <td >
          Col 3
         </td>
        </tr>
       </tbody>
      </table>
     </div>
    </td>
   </tr>
   <tr >
    <td >
     <div >
      Data in Col 1
     </div>
    </td>
    <td >
     <div >
      Data in Col 2
     </div>
    </td>
    <td >
     <div >
      Data in Col 3
     </div>
    </td>
   </tr>
  </tbody>
 </table>
 </body>
</html>

jquery.table2csv.0.1.1.min.js

(function($)
 {$.fn.table2csv=function(options)
  {
   var defaults=
   {
    delimiter:",",callback:function(csv)
    {
     return csv;
    } 
   };
   var settings=$.extend(defaults,options);
   return this.each(function()
   {
    var name=$(this).find("caption").text();
    var csv="";

    $(this).find("td").each(function()
    {
     csv+="\""+$(this).text().replace(/(\")/gim,"\\\"\\\"")+"\""+",";
     alert(csv);
    })  
    csv=csv.replace(/\,$/gim,"");
    settings.callback(csv,name);
   });

  }
 })(jQuery);
4

2 に答える 2

1

table2csv スクリプトを書き直す必要があります。$().find('td') を使用して <td> を見つける代わりに、 $('tr').children('td') を使用して、特定の行のセルを取得していることを確認できます。

Web 上のランダムな <table> には、 <th> <tbody> <tfoot> およびその他のセマンティックなものが含まれている可能性があることに注意してください。

于 2010-11-25T04:15:57.310 に答える
0

$('tr').children('td') を含めた後、得られる o/p

"col1","col2","col3","col3","col1 のデータ","col2 のデータ","col3 のデータ" "col1","col2","col3","col3"," col1 のデータ"、"col2 のデータ"、"col3 のデータ" "col1"、"col2"、"col3"、"col3"、"col1 のデータ"、"col2 のデータ"、"col3 のデータ"

ただし、出力は「col1」、「col2」、「col3」、「data in col1」、「data in col2」、「data in col3」である必要があります。

于 2010-11-25T06:28:12.873 に答える