Zeile aus Tabelle ausblenden
siGGi
- javascript
0 siGGi0 Gernot Back
Hallo allerseits,
ich möchte eine Tabelle auf das Vorkommen einer Zeichenkette durchsuchen und als Ergebnis nur die Treffer anzeigen. Dabei sollen die nicht zutreffenden Einträge einfach ausgeblendet werden. Mein JS Code sieht so aus:
function searchTable(keyword, colNum) {
var node = document.getElementsByTagName('BODY')[0];
var cols = node.getElementsByTagName('TD');
if(!keyword) return;
for(var i=4; i<cols.length; i++) {
if((i+1)%4 == colNum) {
if(cols[i].firstChild.data.toLowerCase().indexOf(keyword.toLowerCase()) == -1) {
cols[i].parentNode.style.display = 'none';
}
}
}
}
Die Tabelle besteht aus 4 spalten und colNum gibt die Spalte an, in der Nach dem Suchwort gesucht werden soll. Alles funktioniert soweit, aber unter dem IE sind durch den CSS-Befehl border-collapse die Rahmen "kaputt". Wenn ich mit einem MouseOver, der die Hintergrundfarbe z.B. über eine Zeile gehe, verschwinden Border, tauchen wieder auf etc. Unter FF geht's. Was kann ich tun, um das Layout zu behalten, aber den Effekt auch unter IE einwandfrei funktionieren zu lassen?
Danke für eure Hilfe!
Nachtrag: Die Schleife beginnt mit i=4, da die erste Zeile aus Überschriften besteht und natürlich nicht mit durchsucht werden soll.
Hallo SiGGi!
Versuch doch mal ohne border collapse auszukommen (z.B. nur für die TDs mittels CSS border setzen, margin auf 0, table und tr ohne border und ohne margin/padding). Ich hatte auch schon Probleme mit border collapse und dem IE (funktioniert nicht richtig).
Grüsse,
Richard
Hallo siGGi,
ich würde mal versuchen, bei den Tabellenzellen nur die untere und die rechte Border zu setzen und zusätzlich beim TABLE-Element alle borders rundherum setzen, bei border-colllapse:collapse.
Gruß Gernot