Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Javascript ja setAttribute

Baglair [24.09.2007 21:17:42]

#

<table id="jee">
...
</table>

Onko oikeoppista asettaa kyseiselle taulukolle omia attribuutteja?
Esimerkiksi:

document.getElementById('jee').setAttribute('paalla', 'pois');

Merri [24.09.2007 22:28:05]

#

Ei, voit käyttää vain HTML-standardista valmiiksi löytyviä attribuutteja. Tässä tapauksessa voinet ihan hyvin käyttää classia (jolloin voit classNamea vaihtamalla asettaa näkyvyyden, luokat eivät toimi kaikissa selaimissa setAttributen kautta).

Olga [25.09.2007 08:38:04]

#

JavaScriptissä myös DOM-nodet ovat olioita kaikkien muiden tyyliin ja voit niille vastaavasti lisätä metodeita ja propertyjä ihan samalla tavoin kuin muillekin olioille. Pikainen testi:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <title>JS-test</title>
  </head>
  <script type='text/javascript'>

    var foo = function ()
    {
      var el = document.getElementById('slerba');
      el.banaani = 27;
      el.pertti = 'dumdam';

      for (var i in el)
        console.log(i + ': ' + el[i]);;
    };

  </script>
  <body onload='foo()'>
    <div id='slerba'>hola!</div>
  </body>
</html>

Ja edellinen tulostaa FireBugin konsoliin mm. seuraavaa:

banaani: 27
pertti: dumdam
nodeName: DIV
nodeValue: null
nodeType: 1
parentNode: [object HTMLBodyElement]
childNodes: [object NodeList]
firstChild: [object Text]
lastChild: [object Text]

Merri [25.09.2007 13:08:24]

#

Jep, kooditse omien laittaminen onnistuu, (X)HTML-standardi on rajoittava tekijä kuitenkin "oikeaoppisuuden" kannalta. Mutta siitä huolimatta tässä samalla voisi tietty testata, toimiiko omat attribuutit kaikissa selaimissa. Testaisin varmaan itse, jos ei olisi työpäivä kesken.

Vastaus

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

Tietoa sivustosta