我需要连续获取所有单元格的内容,将它们合并,然后将它们放入textarea中。我想我需要.each()函数,比如:
$('table tr').each(function() {
$(this).find('td').text().appendTo(textarea); // not right
});
但我不知道如何将每个单元格的内容合并为一个,然后将其放入textarea。
基本上,我有一张这样的表:
<table>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
</table>
我希望它最终会像这样:
<textarea>
1,2,3,4
1,2,3,4
1,2,3,4
</textarea>
http://jsfiddle.net/qy1e7to6/33/
我非常感谢你能给予的任何帮助。谢谢。
答案 0 :(得分:2)
你非常接近!对于table row
的每次迭代,您希望将每个单元格的字符序列与,
分隔符组合在一起。最后,您需要一个line break
。
我们可以轻松地将文本与,
分隔符合并的一种方法是使用数组然后加入数组
var chars = [];
// add characters here...
chars.join(',');
当我们追加时,我们可以为文本添加新行:
var chars = [];
// iterate each cell and push to array to join later!
$(this).find('td').each(function(){
chars.push($(this).text());
});
// append to text area and join the array
textarea.append(chars.join(','), '\n');
这是一个更新的小提琴: http://jsfiddle.net/qy1e7to6/34/
答案 1 :(得分:1)
此代码有效:
var msg = "";
$('table tr').each(function() {
$(this).find('td').each(function(){
msg += $(this).text() + ",";
});
msg +=" \r\n";
});
$("textarea").val(msg);
fiddler:http://jsfiddle.net/fr5htjyz/1/
答案 2 :(得分:0)
你可以试试
var content = '';
$('table tr').each(function(idx,elem) {
$(elem).find('tr').each(function(index,element){
content += $(element).text() + ',';
});
content.splice(0,-1);
content + = '\n';
});
$(textarea).val(content);