我需要对从数据库返回的这些行进行分组。不幸的是,在数据库中,他们为每个联系信息创建了一个新的完整记录。
查看:
Name TZ Office Cell Home Email
Andres 2442 3667 - - - -
Andres - 999-99-99 - - -
Andres - - 999-99-99 - -
Andres - - - 999-99-99 -
Andres - - - - gchaves@itconvergence.com
HTML CODE
<table id="gptable">
<thead>
<td>Name</td>
<td>TZ</td>
<td>Office</td>
<td>Cell</td>
<td>Home</td>
<td>Email</td>
</thead>
<tbody>
<tr>
<td>Andres</td>
<td>2442 3667</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
</tr>
<tr>
<td>Andres</td>
<td>-</td>
<td>999-99-99</td>
<td>-</td>
<td >-</td>
<td >-</td>
</tr>
<tr>
<td>Andres</td>
<td>-</td>
<td>-</td>
<td>999-99-99</td>
<td>-</td>
<td>-</td>
</tr>
<tr>
<td>Andres</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>999-99-99</td>
<td>-</td>
</tr>
<tr>
<td>Andres</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>gchaves@itconvergence.com</td>
</tr>
</tbody>
那么如何将所有这些行组合在一起呢? Fiddle.
答案 0 :(得分:1)
将数据库中的每个字段存储为单个记录是非常糟糕的做法。但是如果你不能改变它,这样的东西应该在jQuery中起作用:
$(document).ready(function() {
var str = first = "";
$("#gptable tbody").each(function(l, tbody) {
$(this).find("tr").each(function(i, tr) {
$(tr).find("td").each(function(j, td) {
if($(this).html() != "-" && j != 0) {
str += "<td>" + $(this).html() + "</td>";
} else if(first == "") {
first = "<td>" + $(this).html() + "</td>";
}
});
});
$('#gptable tbody').empty();
$('#gptable tbody').after("<tr>" + first + str + "</tr>");
});
});
这是你的小提琴:http://jsfiddle.net/65wYn/2/
答案 1 :(得分:1)
我想是的,你可以将它们全部分成一行。 试试这个:
var $body = $('#gptable').find('tbody');
var $rows = $body.find('tr');
var newBody = document.createElement('tr');
var indexCounter = 1;
jQuery.each($rows, function (i, item) {
if (i === 0) {
$(newBody).append('<td>' + $(item).find('td').get(0).innerHTML + '</td>');
}
$(newBody).append('<td>' + $(item).find('td').get(indexCounter).innerHTML + '</td>');
indexCounter++;
});
$('#gptable').find('tbody').empty().append(newBody);
然后,您获得了分组行:
Name TZ Office Cell Home Email
Andres 2442 3667 999-99-99 999-99-99 999-99-99 gchaves@itconvergence.com
我希望它有所帮助。 JSFiddle示例:http://jsfiddle.net/amontellano/YZtkf/