"Kim Noer" <kn@nospam.dk> writes:
> Givet er en tabel med fl.g. indhold
[marker felter der ikke er magen til første kolonne]
> dvs. alt er i forhold til den første kolonne. Kan det lade sig gøre i
> javascript, uden al for meget CPU brug?
Det skulle være muligt.
Først en funktion til at pille teksten ud af et DOM-element. Jeg bruger
ikke 'innerText', da langt fra alle browsere understøtter den.
---
function getText(node) {
var res = "";
for (var chld = node.firstChild; chld; chld = chld.nextSibling) {
switch(chld.nodeType) {
case 1:
res += getText(chld);
break;
case 3:
res += chld.nodeValue;
}
}
return res;
}
---
Hvis du ved at dine celler kun indeholder simpel tekst, så kan du sikkert
nøjes med koden
return node.firstChild.nodeValue;
Denne funktion virker også hvis teksten er fremhævet, etc.
Med den i hånden kan vi gennemløbe tabellen:
---
function markerTabel(tableId) {
var table = document.getElementById(tableId);
for (var i=0;i<table.rows.length;i++) {
var row = table.rows[i];
var first = getText(row.cells[0]);
for (var j=1; j<row.cells.length; j++) {
var cell = row.cells[j];
if (getText(cell)!=first) {
cell.style.color = "red";
}
}
}
}
---
Hvis tabellen så har id="foo", så kalder du bare
markerTabel("foo");
Testet i Opera 7. Mozilla FB og IE 6.
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:
http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'