我有HTML表格结构。我需要将<tr>
替换为/n
,将<td>
替换为&#39; / t&#39;使用正则表达式。我所做的如下:
var dataval = [].slice.call($("#printdiv").find("table tr")).map(function(row){
var a = row.textContent.trim().replace(/td/gi,"\t");
return a;
}).join("\r\n");
部分工作但tab
不在<td>
之间。
答案 0 :(得分:2)
Firstly, never use RegEx to parse HTML。其次,您可以通过构建表示表中所有tr
和td
元素的二维数组来实现此目的,如下所示:
var tableData = $('table tr').map(function() {
return [$(this).find('td').map(function() {
return $(this).text();
}).get()];
}).get();
请注意,第二个map()
调用的返回值需要放在另一个数组中,因为jQuery会在map()
的响应中烦恼地展平第一个子数组。
从那里你可以构建一个字符串,每个单元格用一个制表符分隔,每一行都有一个新行。像这样:
var output = '';
$.each(tableData, function(i, row) {
$.each(row, function(i, cell) {
output += cell + '\t';
})
output += '\n';
})