Javascript 打破10 td';在tr内的一组5中的s
我从外部网站得到一个我无法控制的页面。现在,该表有如下内容:Javascript 打破10 td';在tr内的一组5中的s,javascript,jquery,html,Javascript,Jquery,Html,我从外部网站得到一个我无法控制的页面。现在,该表有如下内容: <table><tbody> <!-- headers --> <tr><td></td> <td></td> <td></td> <td></td> <td></td> <td></td>
<table><tbody>
<!-- headers -->
<tr><td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<!-- body -->
<tr><td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody></table>
if($("#container").find("table>tbody>tr>td").length <=5)){
do the breaking here
}
$('#mypahe form table>tbody>tr:odd').each(function(){
$('<tr>').insertAfter(this).append($('>:gt(4)',this))
});
if($("#container").find("table>tbody>td").length <=5){
var theElements = $("#container").find("table>tbody>tr>td");
var theOutput = '';
$('tbody').empty();
$('tbody').append('<tr>');
for(var i = 1; i <= theElements.length + 1; i++) {
theOutput += theElements[i-1];
$('tbody').append(theElements[i-1])
if(i%5 == 0) {
$('tbody').append('</tr><tr>');
}
}
$('tbody').append('</tr>');
}
我在一条线上得到了这一切。现在我想用jquery解决这个问题,每5个TD计数,它应该添加一个结束
和一个开始
,剩下的TD应该放在它们里面
试着这样做:
<table><tbody>
<!-- headers -->
<tr><td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<!-- body -->
<tr><td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody></table>
if($("#container").find("table>tbody>tr>td").length <=5)){
do the breaking here
}
$('#mypahe form table>tbody>tr:odd').each(function(){
$('<tr>').insertAfter(this).append($('>:gt(4)',this))
});
if($("#container").find("table>tbody>td").length <=5){
var theElements = $("#container").find("table>tbody>tr>td");
var theOutput = '';
$('tbody').empty();
$('tbody').append('<tr>');
for(var i = 1; i <= theElements.length + 1; i++) {
theOutput += theElements[i-1];
$('tbody').append(theElements[i-1])
if(i%5 == 0) {
$('tbody').append('</tr><tr>');
}
}
$('tbody').append('</tr>');
}
if($(“#容器”).find(“table>tbody>tr>td”).length-tbody>tr:odd')。每个(函数(){
$('').insertAfter(this).append($('>:gt(4'),this))
});
但它从标签都在同一行开始,在下面的部分,它将tr分成两个tr
我更新了一个问题,我试过的代码和你给出的代码只在第一部分有效,而在第二部分无效。你可以这样做:
$('table').find('tr').each(function() {
// collect all cells with an index greater 4
var newCells = $(this).find('td:gt(4)'),
// add a row below current
newRow = $('<tr>').insertAfter(this);
// add new row
newRow.append(newCells);
});
function groupUp(TRelement, groups) {
var trs = [];
var groupSize = Math.floor(TRelement.children.length / groups);
for (var i = 0; i < groups; ++i) {
trs[i] = document.createElement("tr");
for (var j = 0; j < groupSize; ++j) {
trs[i].appendChild(TRelement.children[0]);
}
}
while (TRelement.children.length > 0) {
trs[groups - 1].appendChild(TRelement.children[0]);
}
var table = TRelement.parentNode;
table.removeChild(TRelement);
trs.forEach(function (element) {
table.appendChild(element);
});
}
var trs = document.querySelectorAll("table tr");
for(var i = 0; i < trs.length; ++i){
groupUp(trs[i], 2);
}
$('table').find('tr').each(function(){
//收集索引大于4的所有单元格
var newCells=$(this.find('td:gt(4)'),
//在当前行下方添加一行
newRow=$('').insertAfter(this);
//添加新行
追加(newCells);
});
基本上,你循环每一行,grep相关的单元格,并将它们附加到一个新行。小提琴是。您可以做如下操作,例如:
$(“#容器表td:gt(4)”).wrapAll(“”).parent().appendTo(“#容器表tbody”)代码>
td{border:1px#DDD solid;}
1.
2.
3.
4.
5.
6.
7.
8.
9
10
这样试试……它肯定会解决您的问题
$(“trtd:nth child(5n)”).each(function(){$(this.append(“HTML”);})
或
$(“trtd:nth child(5n)”).append(“HTML”)
或者您可以尝试以下方法:
<table><tbody>
<!-- headers -->
<tr><td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<!-- body -->
<tr><td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody></table>
if($("#container").find("table>tbody>tr>td").length <=5)){
do the breaking here
}
$('#mypahe form table>tbody>tr:odd').each(function(){
$('<tr>').insertAfter(this).append($('>:gt(4)',this))
});
if($("#container").find("table>tbody>td").length <=5){
var theElements = $("#container").find("table>tbody>tr>td");
var theOutput = '';
$('tbody').empty();
$('tbody').append('<tr>');
for(var i = 1; i <= theElements.length + 1; i++) {
theOutput += theElements[i-1];
$('tbody').append(theElements[i-1])
if(i%5 == 0) {
$('tbody').append('</tr><tr>');
}
}
$('tbody').append('</tr>');
}
if($(“#容器”).find(“table>tbody>td”).length您可以这样做:
$('table').find('tr').each(function() {
// collect all cells with an index greater 4
var newCells = $(this).find('td:gt(4)'),
// add a row below current
newRow = $('<tr>').insertAfter(this);
// add new row
newRow.append(newCells);
});
function groupUp(TRelement, groups) {
var trs = [];
var groupSize = Math.floor(TRelement.children.length / groups);
for (var i = 0; i < groups; ++i) {
trs[i] = document.createElement("tr");
for (var j = 0; j < groupSize; ++j) {
trs[i].appendChild(TRelement.children[0]);
}
}
while (TRelement.children.length > 0) {
trs[groups - 1].appendChild(TRelement.children[0]);
}
var table = TRelement.parentNode;
table.removeChild(TRelement);
trs.forEach(function (element) {
table.appendChild(element);
});
}
var trs = document.querySelectorAll("table tr");
for(var i = 0; i < trs.length; ++i){
groupUp(trs[i], 2);
}
函数组(TreElement,组){
var-trs=[];
var groupSize=数学地板(treelement.children.length/组);
对于(变量i=0;i<组;++i){
trs[i]=document.createElement(“tr”);
对于(变量j=0;j0){
trs[groups-1].appendChild(treelement.children[0]);
}
var table=treelement.parentNode;
表2.removeChild(TRelement);
trs.forEach(功能(元素){
表2.子元素(元素);
});
}
var trs=document.querySelectorAll(“表tr”);
对于(变量i=0;i
演示:像那样使用它….$(“tr td:nth child(5)”)。附加(“-2nd!”);各位,请引导您好,谢谢,但我们为什么使用-2nd这是唯一的内容。用您想要的任何内容替换此内容。只需使用此$(“tr td:nth child(5)”).logics。没有-5th!
这样的东西。它只会逐字添加一个字符串。只需将这个-5th!替换为您希望在第5个td之后添加的html。它工作正常,但问题是,它会拆分td,但它会一个接一个地显示标题,并且表单字段是分开的,所以拆分td的se时不可能吗cond的表单值应该显示在它下面,否则它们会被加载你是否再次检查了我的问题,它正在工作,但现在它在顶部的两行上显示了标题,在底部的两行上显示了表单字段,就像标题没有像我应该的那样与firld一起一样,这是一段有点复杂的代码,我正在通过添加标题来修改你的代码同样,如果你看到标题运行与我尝试的不同:我希望在每个标题下都有goAwesome的值,谢谢伙计