Cybaer: Tabellenzeilen ausblenden

Beitrag lesen

Hi,

wozu mich Cybear erst unlängst wieder ermahnt hat

Wer? Anglizismus! =;-o

(immer schön erst die Methoden und Eigenschaften abfragen, bevor man darauf zurückgreift).

Na ja, *immer* mache ich das auch nicht. =;-)

Aber bestimmt findet der wieder was, was man besser machen sollte!

Hmm, so ist es. :-o

[code]

[code lang=html] ;-)

<script type="text/javascript" language="JavaScript">

Es kann nicht schaden, das Script mit "<!--" auszukommentieren. ;-)

OK, jetzt aber ernsthaft:

dynamic = false;

Das globale dynamic ist falsch ermittelt. Eigentlich ist es auch überflüssig. Denn ...

if(document.getElementById && document.getElementsByTagName) {
  dynamic = true;

... Du ermittelst damit nur, daß getElement.../all existiert.

Was Du aber wissen mußt, ist, ...

for (i=0; i<grupos.length; i++ ) {
     grupos[i].className='hide';

... ob die Eigenschaft className existiert. Dummerweise gibt es aber den Fall, daß ein Browser ersteres kennt, letzteres aber nicht! =:-o

Ergo: dynamic raus und obige Schleife z.B. umklammern mit

if(grupos[0] && typeof(grupos[0].className)!="undefined") {

Analog kann man in einaus() statt ...

if(dynamic) {

... auch gleich

if(typeof(document.getElementsByTagName("body")[0].className)!="undefined") {

schreiben. Dann hat man eine globale Variable weniger und die Funktion ist auch noch "stand-alone".

Und wenn man schon dabei ist, dann kann man auch gleich noch abfragen, ob parentNode überhaupt existiert (bzw. der Node/die Nodes selbst), was dann ergibt:

if(was && typeof(was.className)!="undefined" && was.parentNode && was.parentNode.parentNode) {

</script>

Der Vollständigkeit halber: Falls man auskommentiert, kommt hiervor natürlich noch ein "//-->". ;-)

Gruß, Cybaer

PS: Wer es *ganz* sauber machen will (also auch für Uralt-Browser), der muß jetzt allerdings das Script auslagern (typeof() existiert erst ab JS 1.1).

Aber der nimmt statt &nbsp; ohnehin &#160; ... ;-)

--
Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!