Oprettet man. d. 20. august 2012 kl. 11:42:44

sbaht
sbaht (16.595 point. Point ude: 180)

Skrifte baggrund i td celle

Jeg har nedenstående funktion, som på bagrund et returneret resultat skal skrifte baggrunden på den celle som der er en værdi i, men af en eller anden årsag bliver alle celler hvide.

Er der nogen der har et trick til dette?

function setbackground(){
             
var cells = document.getElementById('tableID').getElementsByTagName('td');                     
         
for (var i = 0; i < cells.length; i++) {
    if (cells[i].getAttribute("name")){
        if (cells[i].getAttribute("name") == "cellname"){         
           
cells[i].style.background="#FFFFFF";                                       
    }         
  }
  }

Skrevet man. d. 20. august 2012 kl. 13:13:09| #1

For mig at se er det vel ikke så underligt. Du sætter alle celler til #FFFFFF. Jeg kan da i hvert fald ikke se hvor du skulle lave baggrunden grå.
Du skal vel registrere om den forrige række er enten hvid eller går og så sætte den pågældende række til det modsatte.

Skrevet man. d. 20. august 2012 kl. 13:14:29| #2

Glem ovenstående.. Læste forkert.

Skrevet man. d. 20. august 2012 kl. 16:02:09| #3

olebole
olebole (216.723 point)
<ole>

Til en begyndelse skal du nok se at få lukket dine gamle tråde  *o)

Hvad koden angår, så udløser den jo JavaScript fejl, som du bør have opdaget. Du kunne også hjælpe dig selv enormt ved at stille koden ordentligt og logisk op. Den kode, du har skrevet i spørgsmålet, er der ingen, der kan overskue - så først, når man får den rykket ordentligt ind, opdager man, at der mangler en 'Tuborg'  =)

Med den fungerer scriptet fint:

<table id="tableID" style="background:red">
<tr><td>blabla</td></tr>
<tr><td name="cellname">blabla</td></tr>
<tr><td>blabla</td></tr>
<tr><td name="cellname">blabla</td></tr>
<tr><td>blabla</td></tr>
</table>

<script type="text/javascript">
function setbackground(){
    var cells = document.getElementById('tableID').getElementsByTagName('td');
    for (var i = 0; i < cells.length; i++) {
        if (cells.getAttribute("name")){
            if (cells[i].getAttribute("name") == "cellname"){
                cells[i].style.background="#FFFFFF";                                       
            }         
        }
    }
}
setbackground();
</script>

- men jeg håber ikke, du skriver tabellen, som jeg har gjort. Det er invalid kode at give tabelceller en name attribut, designtime. Hvis du skal bruge sådan en attribut [i]skal
den sættes med setAttribute

/mvh
</bole>

Skrevet man. d. 20. august 2012 kl. 16:03:42| #4

olebole
olebole (216.723 point)
Damned ...! Fanden tage Ekspertens elendige BB-parser! Jeg prøver igen  =)

<table id="tableID" style="background:red">
<tr><td>blabla</td></tr>
<tr><td name="cellname">blabla</td></tr>
<tr><td>blabla</td></tr>
<tr><td name="cellname">blabla</td></tr>
<tr><td>blabla</td></tr>
</table>

<script type="text/javascript">
function setbackground(){
    var cells = document.getElementById('tableID').getElementsByTagName('td');
    for (var i = 0; i < cells.length; i++) {
        if (cells[ i].getAttribute("name")){
            if (cells[ i].getAttribute("name") == "cellname"){
                cells[ i].style.background="#FFFFFF";                                       
            }         
        }
    }
}
setbackground();
</script>

Skrevet tir. d. 21. august 2012 kl. 15:40:56| #5

sbaht
sbaht (16.595 point)
Scriptet fungerer også fint nok for mig, jeg havde ikke fået kopieret det hele, derfor den manglende "tuborg".

Mit issue er at jeg kun ønsker at skrifte farve fra eks. rød til hvid hvis der er en tekst i cellen.
Mit html genereres igennem xslt.

Har du et en idé til hvordan jeg looper igennem cellerne?

Skrevet tir. d. 21. august 2012 kl. 16:04:18| #6

olebole
olebole (216.723 point)
Dine name attributter er stadig ikke valide. Sådan én er ikke kovlig på et TD element  =)

Hvis både en attribut skal være present - og der skal stå noget tekst i elementet - kan du skrive:

<script type="text/javascript">
function setbackground(){
    var cells = document.getElementById('tableID').getElementsByTagName('td');
    for (var i = 0; i < cells.length; i++) {
        if (cells[ i].getAttribute("name")){
            if (cells[ i].getAttribute("name")=="cellname" && cells[ i].firstChild && cells[ i].firstChild.nodeValue!==""){
                cells[ i].style.background="#FFFFFF";                                       
            }         
        }
    }
}
setbackground();
</script>

Skrevet lør. d. 08. september 2012 kl. 08:13:20| #7

sbaht
sbaht (16.595 point)
Smid lige et svar og du får point.

Skrevet lør. d. 08. september 2012 kl. 12:44:35| #8

olebole
olebole (216.723 point)
Ellers tak, jeg samler ikke point. Læg selv et svar og accepter det, så tråden lukkes  =)

Skrevet man. d. 10. september 2012 kl. 12:08:18| #9


Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   


Seneste spørgsmål

Første ID er tom ?

Oprettet den 11. maj 2013 kl. 11.54
ingeman giver 200 point for svar | Giv et svar »

alert box frem hvis der intet indhold er på siden

Oprettet den 8. maj 2013 kl. 19.43
tobrukDk giver 60 point for svar | Giv et svar »

Enter som TAB

Oprettet den 8. maj 2013 kl. 14.21
MolleBarb giver 30 point for svar | Giv et svar »








Tips & Tricks fra PC World

Teaser billede

Her er seks Google Labs-funktioner, som du skal slå til med det samme

Gmail Labs giver dig adgang til en masse smarte funktioner, som Googles ingeniører leger med i øjeblikket.


Anmeldelser fra PC World

Teaser billede

Test: Samsung Galaxy S4 er et hit - trods gøglertricks

Kan Samsung beholde førertrøjen i det store Android-race? Galaxy S4 er smækfyldt med innovative funktioner, men også med en del gøgl. Er det for meget? Få vores dom over Samsungs nye topmodel.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Tre smarte trick som gør Windows 8 bedre

Boot direkte til skrivebordet, få en strategisk godt placeret luk-knap og slip for at logge ind. Her er tre tips til Windows 8, som gør det nemmere at blive venner med styresystemet.


Nyheder fra Computerworld

Teaser billede

Galleri: Her er Googles nyeste værktøj og legetøj

Google har i denne uge afholdt udviklerkonferencen I/O i San Francisco. Se her hvad søgegiganten kunne præsentere af nyskabelser.


IT Kurser
Samarbejdspartnere

Udgiver · © 2013 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger