Archivlink: javarea.de Forum > JavaScript > Mehrere <tr> ansprechen
Vollständigen Link anzeigen: javarea.de Forum > JavaScript > Mehrere <tr> ansprechen

Pages: [1]

geschrieben von wuede am 07.10.2005 - 15:30
Hallo Miteinander

Ich würde gerne mehrere <tr> mit getElementById() ansprechen. Mir ist klar, dass die ID eindeutig sein muss. Deshalb sind die IDs durchnummeriert (z.B. 0ID,1ID,2ID, usw.). Also habe ich dazu eine For-Schleife geschrieben, welche jede ID ansprechen sollte. Es kann vorkommen, dass die For-Schleife eine ID testet, welche nicht existiert. Desshalb steht am Anfang eine Überprüfung. Findet das Script ein Element, wird das style-Attribut verändert. Jedoch bricht dann die Schleife ab und läuft nicht weiter.


hier der code:

function openTree(id)
{

for (i=0;i<37;i++) {
id_n = i + id
alert(id_n)
if (document.getElementById(id_n)) {


if (document.getElementById(id_n).style.display == 'none') {
document.getElementById(id_n).style.display = 'table-row';
picName='pic_' + id;
document.getElementById(picName).src="img/ordner_o.gif";
} else {
document.getElementById(id_n).style.display = 'none';
picName='pic_' + id;
document.getElementById(picName).src="img/ordner_z.gif";
}


}

}
}

Danke für eure Hilfe

geschrieben von okley am 07.10.2005 - 16:12
ich denke nicht dass du der erste bist der ein solche tree control entwickelt ..., aber wenn du die zeit dazu hast kannst du das gerne nochmal machen
hm, also ich würde einfach alle tabellenzeilen durchgehen, und dan prüfen ob die id der momentanen zeile in deinem ID-Array vorkommt. wenn du einfach alle zeilen ändern willst, dann brauchst du natürlich diese zusatzabfrage nicht mehr

hier der code um jede zeile durchzugehen:
HTML-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
function hoverRows(){
                                if (document.all && document.getElementById)
                                {   navRoot = document.getElementById('tableID');
                                    // Get a reference to the TBODY element 
                                    tbody = navRoot.childNodes[0];
                                    for (i = 0; i < tbody.childNodes.length; i++)
                                    {
                                        node = tbody.childNodes[i];
                                        if (node.nodeName == 'TR')
                                        {
                                            node.onmouseover=function()
                                            {this.className += ' rowhover';}

                                            node.onmouseout=function()
                                            {this.className = this.className.replace('rowhover', '');}
                                        }
                                    }
                                }
                            }


du kannst den denke ich selbst soweit and deine idee anpassen. ich hoffe ich konnte dir weiterhelfen.

geschrieben von René am 07.10.2005 - 18:16
Vielleicht hilft dir das auch weiter:

HTML-Quelltext
1: 
alert(document.getElementsByTagName('tr').length);

geschrieben von Martin am 07.10.2005 - 18:17
Ave,

warum benutzt du document.getElementsByTagName nicht? Hier wird ein Array mit allen Elementen eines Typs zurückgegeben.

mfg martin


Powered by: JBB v.2.0.4 Copyright ©2000-2006, www.javarea.de.