必要性:テーブルのデータをコンマ区切りの値に変換したい。
問題:テーブルセルに別のテーブルがある可能性があります。(例:行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);