Siechfred: Mehrere Objekte behandeln

Beitrag lesen

Hell-O!

Denn im Gegensatz zur ID darf ein Name mehrfach in einem HTML-Dokument vorkommen.
Im Gegensatz zu ID ist die Menge der Elemente, die ein name-Attribut haben, ziemlich begrenzt.

Verwechsle nicht HTML und Javascript. Letzterem ist die Validität des verwendeten HTML ziemlich schnuppe. Abgesehen von dem IE-Bug hinsichtlich getElementsByName (für den besten Browser der Welt sind Element-ID und Elementname eins) funktioniert es tadellos:

Javascript:

isIE = (window.external ? true : false);  
isOpera = (window.opera ? true : false);  
visible = (isIE ? 'block' : 'table-row');  
  
function getElementsByName_fix(eTag, eName) {  
  var elem = document.getElementsByTagName(eTag);  
  var arr = new Array();  
  for(i = 0; i < elem.length; i++) {  
    att = elem[i].getAttribute('name');  
    if(att == eName) arr.push(elem[i]);  
  }  
  return arr;  
}  
  
function base_init() {  
  var trColl = document.getElementsByTagName('tr');  
  for(i = 0; i < trColl.length; i++) trColl[i].style.display = visible;  
}  
  
function blenden(n) {  
  var trColl = ((isIE || isOpera) ? getElementsByName_fix('tr', n) : document.getElementsByName(n));  
  for(i=0; i<trColl.length; i++)  
    trColl[i].style.display = (trColl[i].style.display==visible ? "none" : visible);  
}

Und das (nicht valide) HTML dazu:

<body onload="base_init();">  
  <table>  
    <tr colspan="2"><td onclick="blenden('t1')">Teil 1</td></tr>  
    <tr name="t1"><td>1</td><td>1</td></tr>  
    <tr name="t1"><td>1</td><td>1</td></tr>  
    <tr colspan="2"><td onclick="blenden('t2')">Teil 2</td></tr>  
    <tr name="t2"><td>2</td><td>2</td></tr>  
    <tr name="t2"><td>2</td><td>2</td></tr>  
    <tr name="t2"><td>2</td><td>2</td></tr>  
    <tr colspan="2"><td onclick="blenden('t3')">Teil 3</td></tr>  
    <tr name="t3"><td>3</td><td>3</td></tr>  
    <tr name="t3"><td>3</td><td>3</td></tr>  
    <tr colspan="2"><td onclick="blenden('t4')">Teil 4</td></tr>  
    <tr name="t4"><td>4</td><td>4</td></tr>  
  </table>  
<body>

Funktioniert so im Firefox 1.5, IE 6.0 und Opera 8.5 unter Win2k. So, jetzt dürfen mich alle Validatorgläubigen peitschen ;-)

Siechfred

--
Ich bin strenggenommen auch nur interessierter Laie. (molily)
Welcome To Carcass Cuntry || Steuerfreie Geburtsbeihilfen?  || RT 221 Erfurt-Altstadt i.V.