Avatar billede akyhne Nybegynder
07. juli 2008 - 21:27 Der er 14 kommentarer og
1 løsning

Værdi fra indhold i TD

Jeg løber nogle TD'er igennem med et script efter ID. Jeg skal fange indholdet i hver TD, eller ID'et skal flyttes ind i indholdet i form af en span eller lignende. Men hvordan får jeg indholdet af f.esk en span?

<span id="G12">Alfa</span>

Jeg skal have værdien af G12 som er alfa. Jeg skal bruge det til at farve alle TD'er eller indholdets baggrundsfarve hvis indholdet er det samme. Den del af koden har jeg styr på.

Det skal være en objekttype hvor onDblClick fungerer. Har prøvet med innerhtml og value, men uden resultat.
Avatar billede akyhne Nybegynder
07. juli 2008 - 21:30 #1
scriptet:

<script language="JavaScript" type="text/javascript">
    function colorperson(id, navn) {
        num = 1;
        while(document.getElementById('U' + num)){
            if ( document.getElementById('U' + num).value==navn )
            { document.getElementById('U' + num).style.background='#FCFC00';
            }
            num++;
        }
    }
</script>
Avatar billede akyhne Nybegynder
07. juli 2008 - 22:26 #2
innerhtml skulle åbenbart blot skrives på den rigtige måde: innerHTML
Avatar billede w13 Novice
08. juli 2008 - 12:02 #3
Hvis du vil undgå .innerHTML, som jo ikke er validt, kan du bruge .firstChild.nodeValue i stedet.
Avatar billede akyhne Nybegynder
08. juli 2008 - 23:04 #4
Tak for rådet.
Avatar billede akyhne Nybegynder
09. juli 2008 - 14:57 #5
Hmm, det virker heller ikke i FF, kun i IE:

while(document.getElementById('U' + num)){
if ( document.getElementById('U' + num).firstChild.nodeValue==navn )
{ if ( handling=='slet' )
{ document.getElementById('U' + num).style.background='#FFFFFF'; }
else { document.getElementById('U' + num).style.background=myVar; }
}
num++;
}
Avatar billede w13 Novice
09. juli 2008 - 15:11 #6
Der ligger nok nogle tomme tekstnoder foran. Måske kan du bruge:

while(document.getElementById('U' + num)){
if ( document.getElementById('U' + num).lastChild.nodeValue==navn )
{ if ( handling=='slet' )
{ document.getElementById('U' + num).style.background='#FFFFFF'; }
else { document.getElementById('U' + num).style.background=myVar; }
}
num++;
}
Avatar billede akyhne Nybegynder
09. juli 2008 - 15:17 #7
Jeg kan ikke lige se forskel på dit og mit. Her er den fulde funktion:

<script language="JavaScript" type="text/javascript">
    function colorperson(navn, handling) {
    var farve = new Array();

        farve[0] = 'FFCC00';
        farve[1] = 'FFCC33';
        farve[2] = 'FFCC66';
        farve[3] = 'FFCC99';
        farve[4] = '00FF00';
        farve[5] = '990000';
        farve[6] = '66FF99';
        farve[7] = '6699CC';
        farve[8] = '669933';
        farve[9] = 'FF6600';
        farve[10] = 'FF66FF';
        farve[11] = 'CCCCFF';
        farve[12] = '99FFFF';
        farve[13] = 'FF0000';
       
        myVar = farve[Math.round(Math.random()*(farve.length-1))];
       
        num = 1;
        while(document.getElementById('U' + num)){
            if ( document.getElementById('U' + num).firstChild.nodeValue==navn )
                { if ( handling=='slet' )
                    { document.getElementById('U' + num).style.background='#FFFFFF'; }
                    else { document.getElementById('U' + num).style.background=myVar; }
                }
            num++;
        }
    }
</script>
Avatar billede w13 Novice
09. juli 2008 - 15:17 #8
Jeg bruger lastChild i stedet for firstChild.
Avatar billede akyhne Nybegynder
09. juli 2008 - 16:02 #9
Hvis jeg sætter en alert ind, virker det gost nok med firstChild. Har ikke prøvet med lastchild. Fejlen er at cellerne IKKE bliver farvet i FF.
Avatar billede w13 Novice
09. juli 2008 - 18:07 #10
Måske er handling=='slet' forkert? Eller myVar er gal på den. Du må nok ud i noget debugning.
Avatar billede akyhne Nybegynder
09. juli 2008 - 18:36 #11
Jeg kalder handlingen således: colorperson(this.lastChild.nodeValue, 'slet')
Avatar billede w13 Novice
09. juli 2008 - 18:40 #12
Ja, det er rigtigt nok.
Avatar billede akyhne Nybegynder
09. juli 2008 - 19:45 #13
FF reagerer slet ikke på Javascript. Jeg har ikke den fjerneste forstand på det scriptsprog. Min side validerer godt nok på W3.org
Avatar billede w13 Novice
09. juli 2008 - 20:28 #14
Prøv at rette background til backgroundColor.

Og linjen:

else { document.getElementById('U' + num).style.background=myVar; }

skal være:

else { document.getElementById('U' + num).style.background="#" + myVar; }

Ellers indledes farven ikke med "#", og det er nok derfor, du ikke ser det korrekt i FF.
Avatar billede akyhne Nybegynder
10. juli 2008 - 00:58 #15
Sorry, glemte dig helt. Det virker fint nu i alle tre browsere. Det var # tegnet der gjorde udfaldet. Den havde jeg skisme glemt.
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