使用jQuery合并/组合表格单元格的内容

时间:2015-04-28 04:08:45

标签: javascript jquery html

我需要连续获取所有单元格的内容,将它们合并,然后将它们放入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/

我非常感谢你能给予的任何帮助。谢谢。

3 个答案:

答案 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);