24. august 2007 - 20:42
Der er
9 kommentarer og 1 løsning
Markere celle med farve
Jeg ville gerne Se nedenstående tabel. Jeg ville gerne at man kunne, hvis man klikker på A i <th> cellen, så markeres alle andre celler med ID a med rød baggrund Ligeledes hvis man kliker på B, C og fortsætter faktisk op til Z Hvordan løser jeg dette? <table style="width: 100%"> <tr> <td>a</td> <th>b</th> <th>c</th> </tr> <tr> <td id="a"> </td> <th id="b"> </th> <td id="c"> </td> </tr> <tr> <td id="a"> </td> <th id="b"> </th> <td id="c"> </td> </tr> <tr> <td id="a"> </td> <th id="b"> </th> <td id="c"> </td> </tr> <tr> <td id="a"> </td> <th id="b"> </th> <td id="c"> </td> </tr> </table>
Annonceindlæg tema
24. august 2007 - 20:45
#1
Du må kun have 1 ID, med samme værdi.. Dvs, det her er IKKE tilladt :-) ... <td id="a"> </td> <th id="b"> </th> <td id="c"> </td> </tr> <tr> <td id="a"> </td> <th id="b"> </th> <td id="c"> </td> </tr> ..osv.. Du kan godt have flere elementer med samme name, men samme ID er ikke tilladt.
24. august 2007 - 21:01
#2
hvordan kan vi så fixe det.. ? lave det som .. <td id="1a"> </td> <th id="1b"> </th> <td id="1c"> </td> </tr> <tr> <td id="2a"> </td> <th id="2b"> </th> <td id="2c"> </td> </tr> .. osv ?
24. august 2007 - 21:02
#3
er ligemeget hvad id eller elementet hedder, bare jeg kan markere en hel kolonne ;)
24. august 2007 - 21:03
#4
Jeg laver lige noget kode til dig.. :-)
24. august 2007 - 21:16
#5
Det kan sikkert gøres mere elegang, men her er et forslag: <script type="text/javascript"> tidligere_celle = ""; umarkeret = "#ffffff"; // Ret farven her markeret = "#ff0000"; // Ret farven her function skiftfarve(celle,farve) { tds = document.getElementsByTagName("td"); for(i = 0, len = tds.length; i < len; i++) { td = tds[i]; if (td.id.indexOf(celle) == 0) td.bgColor = farve; } } function marker(elm) { nuvaerende_celle = elm.childNodes[0].nodeValue; if (tidligere_celle != "") skiftfarve(tidligere_celle,umarkeret); // reset de gamle celler skiftfarve(nuvaerende_celle, markeret); tidligere_celle = nuvaerende_celle; } </script> <table style="width: 100%"> <tr> <th onclick="marker(this)">a</td> <th onclick="marker(this)">b</th> <th onclick="marker(this)">c</th> </tr> <tr> <td id="a1">1</td> <td id="b1">2</th> <td id="c1">3</td> </tr> <tr> <td id="a2">4</td> <td id="b2">5</th> <td id="c2">6</td> </tr> <tr> <td id="a3">7</td> <td id="b3">8</th> <td id="c3">9</td> </tr> <tr> <td id="a4">10</td> <td id="b4">11</th> <td id="c4">12</td> </tr> </table> HUSK: ID må ikke starte med et tal.. det skal starte med et bogstav.. :-)
24. august 2007 - 21:16
#6
Svar :-)
24. august 2007 - 21:17
#7
Hvis du undrer dig over at jeg har skrevet tallene 1-12, er det fordi man skal kunne se, at der er celler.. Du kan bare erstatte 1-12 med " " igen, hvis du vil.. :-)
24. august 2007 - 21:48
#8
Yes, det virker.. der er så et lille MEN Jeg vil gerne man kan have FLERE kolonner markeret samtidig :) bare for at være besværlig. Dvs hvis jeg gerne vil markere både A B og C.. Så skal fungere således: klikker man på A første gang, markeres den kolonne med farve, klikker jeg på A igen, fjerner farven sig igen :)
24. august 2007 - 22:31
#9
Du er ved at være lidt krævende.. men kan sagtens klare presset.. :-) Her: <script type="text/javascript"> tidligere_celle = ""; umarkeret = "#ffffff"; // Ret farven her markeret = "#ff0000"; // Ret farven her function skiftfarve(celle) { tds = document.getElementsByTagName("td"); for(i = 0, len = tds.length; i < len; i++) { td = tds[i]; if (td.id.indexOf(celle) == 0) { if (td.style.backgroundColor == markeret) { td.style.backgroundColor = umarkeret; } else { td.style.backgroundColor = markeret; } } } } function marker(elm) { nuvaerende_celle = elm.childNodes[0].nodeValue; skiftfarve(nuvaerende_celle); } </script>
24. august 2007 - 22:47
#10
Nu kan man lige så godt slå funktionerne sammen: <script type="text/javascript"> tidligere_celle = ""; umarkeret = "#ffffff"; // Ret farven her markeret = "#ff0000"; // Ret farven her function marker(elm) { celle = elm.childNodes[0].nodeValue; tds = document.getElementsByTagName("td"); for(i = 0, len = tds.length; i < len; i++) { td = tds[i]; if (td.id.indexOf(celle) == 0) { if (td.style.backgroundColor == markeret) { td.style.backgroundColor = umarkeret; } else { td.style.backgroundColor = markeret; } } } } </script>
Vi tilbyder markedets bedste kurser inden for webudvikling