Minulla on taulukko jossa on soluilla määritetty eri nimiä. Pystyykö getElementsByName:lla muuttamaan kaikkien tietyn nimisten solujen tyyliä? Eli esim. kaikkiin <td name="solu1"> soluihin vaihtamaan taustan väriä?
En pysty selvittämään järkevästi solujen Id:tä, joten getElementsById:tä ei voi käyttää...
Eihän se funktio mitään muokkaa vaan hakee vain taulukollisen elementtejä. Voit sitten käydä tavallisella for-silmukalla ne elementit läpi ja tehdä jokaiselle saman muutoksen.
Pystyy ihan helpollakin, jos käyttää jotakin valmista kirjastoa. Itse tehtykin varmasti toimii, jos haluaa oppia miten se tehdään.
var haettavaNimi = "Solu1";
var saadut = document.getElementsByTagName("td");
for(a = 0; a < saadut.length; a++){
if(saadut[a].getAttribute("name") == haettavaNimi){
saadut[a].setAttribute("class", "punainen");
/* saadut[a].setAttribute("style:", backgroundColor: red;" */
}
}EDIT Jokohan se nyt osuis?
Kiitti, jos joku kaipaa, niin tuo kommentoitu rivi menee näin:
saadut[a].setAttribute("style", "background-color: #ff0000;");Meikä on aika huono käyttämään mitään valmista. Itse tehty on aina itse tehty, niin hyvässä kuin pahassakin...
amuse kirjoitti:
Kiitti, jos joku kaipaa, niin tuo kommentoitu rivi menee näin:
saadut[a].setAttribute("style", "background-color: #ff0000;")
Minusta javascriptin kanssa ei saa käyttää väliviivaa, vaan jokainen nimenosa tulee kirjoitella isolla alkukirjaimella. Voin toki olla väärässäkin, mutta näin blazen kirjoittamassa oppaassa todetaan.
Teuro kirjoitti:
Minusta javascriptin kanssa ei saa käyttää väliviivaa, vaan jokainen nimenosa tulee kirjoitella isolla alkukirjaimella.
Tämä viittaa JS:n muuttujiin. Voisi nimittäin kirjoittaa myös elementti.style.backgroundColor = '#f00';, jolloin tietenkin viiva tulkittaisiin miinusmerkiksi ja rivin merkitys muuttuisi aika radikaalisti.
Aihe on jo aika vanha, joten et voi enää vastata siihen.