Avatar billede mcclaud Nybegynder
04. maj 2012 - 22:00 Der er 8 kommentarer og
1 løsning

Markering af udvalgte poster i tabel

Hej alle eksperter

På min hjemmeside har jeg her på eksperten fået stor hjælp til at lave en javascript-styret tabel udtrukket fra en xml-fil, som er sortérbar. Det, jeg godt kunne tænke mig bliver tilføjet scriptet, er, at visse rækker kan vises med en anden farve tekst (defineret i css) end de øvrige rækker. Det drejer sig om de rækker, som har status 'inaktiv' i feltet 'AKTIV' i xml-filen. Jeg håber, at det kan lade sig gøre på en relativ enkel måde?

HTM: http://www.halfmen.dk/alltimestatistik.htm
XML: http://www.halfmen.dk/xml-alltimestatistik.xml
CSS: http://www.halfmen.dk/css/totalstatistics.css

:o) mcclaud
Avatar billede olsensweb.dk Ekspert
04. maj 2012 - 22:48 #1
jeg ville rette denne linje
elmRow.className = bOdd ? "even" : "odd";

til
var active = oData.selectSingleNode("AKTIV").firstChild.nodeValue;    
if(active==="Inaktiv") elmRow.className = bOdd ? "Inaktiv even" : "Inaktiv odd";
else elmRow.className = bOdd ? "even" : "odd";


og tilføje denne class i CSS
<style type="text/css">
    .Inaktiv {
        BACKGROUND: #ff0000;
        COLOR: #660000;
    }       
</style>
Avatar billede mireigi Novice
05. maj 2012 - 01:24 #2
Bare for ordens skyld, burde det så ikke være:
var active = oData.selectSingleNode("AKTIV").firstChild.nodeValue;   
if(active==="Inaktiv") elmRow.className == bOdd ? "Inaktiv even" : "Inaktiv odd";
else elmRow.className == bOdd ? "even" : "odd";


= er tildeling
== er sammenligning
Avatar billede olsensweb.dk Ekspert
05. maj 2012 - 09:24 #3
#2 Bare for ordens skyld, burde det så ikke være:
det er så sandelig også tildeling der skal ske i
elmRow.className = bOdd ? "Inaktiv even" : "Inaktiv odd";
og else elmRow.className = bOdd ? "even" : "odd";

så derfor kun et ligmed

bOdd er enten 0 eller 1

=  er tildeling
==  er sammenligning på værdi
=== er sammenligning på værdi og data type


elmRow.className = bOdd ? "even" : "odd";

er det sammen som
if(bOdd){ 
    elmRow.className = "even";
}
else{
    elmRow.className = "odd";
}
   

men man burde måske have sat parantes om bOdd
elmRow.className = (bOdd) ? "even" : "odd";

så havde du straks genkendt det som en "Ternary Condition"

http://www.google.dk/search?q=js+Ternary+Condition
http://javascript.about.com/od/byexample/a/ternary-example.htm

skulle man forbedre det lidt burde man nok convaterer active til lovercase, da det ikke er sikkert at ham der skriver "Inaktiv" i xml filen,  gør det på sammen måde hver gang
var active = oData.selectSingleNode("AKTIV").firstChild.nodeValue.toLowerCase();    
if(active==="inaktiv"){
    elmRow.className = (bOdd) ? "Inaktiv even" : "Inaktiv odd";
}
else{
    elmRow.className = (bOdd) ? "even" : "odd";
}


demo http://experten.olsensweb.dk/962385/
Avatar billede mcclaud Nybegynder
05. maj 2012 - 11:21 #4
Tusind tak. Det virker, som det skal. Smid et svar, så smider jeg med glæde points.

Rigtig go' weekend.  :o) mcclaud
Avatar billede olsensweb.dk Ekspert
05. maj 2012 - 12:45 #5
du får et svar her.

du vil med fordel kunne øge læsbarheden af din code for os menesker ved at bruge indrygninger, {}, og nogle linje skift
dette er betydelig sværrer at læse
var active = oData.selectSingleNode("AKTIV").firstChild.nodeValue;    
if(active==="Inaktiv") elmRow.className = bOdd ? "Inaktiv even" : "Inaktiv odd";
else elmRow.className = bOdd ? "even" : "odd";


end
var active = oData.selectSingleNode("AKTIV").firstChild.nodeValue.toLowerCase();    
if(active==="inaktiv"){
    elmRow.className = (bOdd) ? "Inaktiv even" : "Inaktiv odd";
}
else{
    elmRow.className = (bOdd) ? "even" : "odd";
}
Avatar billede mireigi Novice
05. maj 2012 - 13:17 #6
@ronols (#3):
Jeg er med på shortform af en if-sætning :) Havde bare lige overset at bOdd var boolsk, så troede, at den blev sammenlignet med ClassName :)
Avatar billede olsensweb.dk Ekspert
05. maj 2012 - 14:02 #7
@mireigi #6
jeg er ikke i tvivl om at du kendte shortform af en if-sætning
det var defor jeg skrev dette
'men man burde måske have sat parantes om bOdd
så havde du straks genkendt det som en "Ternary Condition"'

>Havde bare lige overset at bOdd var boolsk
ja det var ud på de små timer du skrev indlægget :)
Avatar billede mireigi Novice
05. maj 2012 - 14:33 #8
Jeg er udvikler, hvilket helt naturligt gør mig til en natteravn :)
Avatar billede mcclaud Nybegynder
05. maj 2012 - 15:17 #9
Points afgivet og mange tak for hjælpen...  :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester