/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Tabel, check for forskel på data i celler?
Fra : Kim Noer


Dato : 23-10-03 11:50

Davsen der..

Givet er en tabel med fl.g. indhold

1 : a b c
2 : a a c
3 : a b b
4 : b a b

osv. osv.

1 : b og c markeres med en anden farve
2 : c skal markeres med anden farve
3 : b og b markeres med anden farve
4 : a markeres med anden farve

dvs. alt er i forhold til den første kolonne. Kan det lade sig gøre i
javascript, uden al for meget CPU brug?

--
I doubt, therefore I might be.



 
 
Lasse Reichstein Nie~ (23-10-2003)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 23-10-03 12:08

"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.'

Kim Noer (23-10-2003)
Kommentar
Fra : Kim Noer


Dato : 23-10-03 13:10

"Lasse Reichstein Nielsen" <lrn@hotpop.com> wrote in message
news:vfqg2ow0.fsf@hotpop.com

> Det skulle være muligt.

Wow - det virker jo helt vildt godt :). Super mange tak for din hjælp!

--
I doubt, therefore I might be.



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste