Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: JS: tyylien vaihto tagin ja nimen mukaan

amuse [28.08.2009 19:19:25]

#

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ää...

Metabolix [28.08.2009 19:24:42]

#

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.

Teuro [28.08.2009 19:29:25]

#

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?

amuse [29.08.2009 10:33:11]

#

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...

Teuro [29.08.2009 15:05:57]

#

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.

Metabolix [29.08.2009 15:09:46]

#

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.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta