<table id="jee"> ... </table>
Onko oikeoppista asettaa kyseiselle taulukolle omia attribuutteja?
Esimerkiksi:
document.getElementById('jee').setAttribute('paalla', 'pois');
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).
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]
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.
Aihe on jo aika vanha, joten et voi enää vastata siihen.