Foreach <TR>...
Nadinada
- javascript
0 ChrisB0 MudGuard0 rabby0 Cheatah0 Tim Tepaße
Hi,
gibt es eine (browserübergreifende) Möglichkeit (gerne auch mit jquery), mit einer synchronen(!) FOR-Schleife alle <TR> einer Tabelle zu durchlaufen und zu prüfen, ob in der 2. Spalte ein leerer <SPAN> enthalten ist.
Ist das der Fall, so soll der oberhalb befindlichen <TD> in Spalte 2 ein ROWSPAN gesetzt werden, sodass die "leeren" TDs davon überlappt werden.
Das Beispiel zeigt etwas deutlicher, was überhaupt erreicht werden soll:
http://nopaste.info/5c54eedf59.html
Eine Lösung mit einer nested list ist mir bekannt, aber dennoch suche ich noch die Lösung für diese Tabellenvariante.
Freue mich auf hilfreiche Info...
Hi,
gibt es eine (browserübergreifende) Möglichkeit (gerne auch mit jquery), mit einer synchronen(!) FOR-Schleife alle <TR> einer Tabelle zu durchlaufen
Was verstehst du in Bezug auf eine simple for-Schleife unter „synchron“, bzw. wie bitte sähe denn „asynchron“ bei einer solchen aus?
und zu prüfen, ob in der 2. Spalte ein leerer <SPAN> enthalten ist.
Der Part sollte kein Problem sein, oder?
Wenn ja, werde bitte genauer, was problematisch daran ist.
Ist das der Fall, so soll der oberhalb befindlichen <TD> in Spalte 2 ein ROWSPAN gesetzt werden, sodass die "leeren" TDs davon überlappt werden.
Definiere „oberhalb“ - von was?
Das Beispiel zeigt etwas deutlicher, was überhaupt erreicht werden soll:
http://nopaste.info/5c54eedf59.html
Was soll das jetzt deutlicher machen?
MfG ChrisB
Hi,
so soll der oberhalb befindlichen <TD> in Spalte 2 ein ROWSPAN gesetzt werden, sodass die "leeren" TDs davon überlappt werden.
rowspan sorgt nicht für Überlappungen.
cu,
Andreas
Mit Jquery und Javascript gemeinsam:
var rowspan=1;
for(var r=x=$("#t1 tr").size()-1;r>=0;r--)
{
var el=$("#t1 tr:eq("+r+") td:eq(1)");
if(el.text()=="")
{
el.css("display","none");
rowspan++;
}
else
{
if(rowspan>1)
{
el.attr("rowspan",rowspan);
}
rowspan=1;
}
}
Hi,
Mit Jquery und Javascript gemeinsam:
wie würdest Du etwas (egal was) mit jQuery, aber ohne JavaScript machen? Gib doch mal bitte ein Beispiel.
Cheatah
Im wesentlichen der gleiche Algorithmus, nur einen Hauch jQuery-esker:
~~~javascript $(document).ready(function(){
var cells = $("#t td:nth-child(2)").toArray().reverse(),
rowspan = 1;
$.each(cells, function () {
var currentCell = $(this)
if ( ! currentCell.text() ) {
currentCell.remove()
rowspan++
} else if (rowspan > 1) {
currentCell.attr("rowspan", rowspan)
rowspan = 1
}
})
});