Problem mit getElementsByName im IE

javaprogger1987

Erfahrenes Mitglied
Hallo!
Ich bin hier echt am verzweifeln, weil ich mein Script nicht ans laufen bekomme..
In Firefox klappt es ohne Probleme aber der Internet Explorer spinnt( mal wieder :-)) rum..
Es geht mir darum in einer Tabelle immer eine Zeile komplett einzufärben, daher haben alle <tr>-Tags das Attribut name="content_table".
Ich änder das Aussehen mit:
Code:
function color( actual )
{
  liste=document.getElementsByName("content_table");
  alert(liste.length); 

  for(i = 0; i < liste.length; i++)
  {
    liste[i].className="tableTR";
  }
  actual.className="tableTRActive";
}

Ein Tag sieht dann so aus:
Code:
<tr id="0" name="content_table" class="tableTR" onclick="color(this)">

Wenn ich die ID auch auf content_table setze klappts im IE auch - aber das ist ja nciht der Sinn da die Funktion ja getElementsByName heißt :rolleyes:
Zumal ich die ID auch noch anderweitig zur Identifikation brauche..

//edit Ach ja: Das alert gibt im IE immer 0 aus.. Im Firefox die Anzahl der Zeilen..

Danke schonmal ^^
Gruß
Tobias
 
Zuletzt bearbeitet:
Ok ;) Danke für den Tipp :-)
Habs nun geschafft:
Code:
function color( actual )
{
  //liste=document.getElementsByName("content_table");
  liste = document.getElementsByTagName("tr");

  for(i = 0; i < liste.length; i++)
  {
    if( liste[i].parentNode.parentNode.id == "content" && liste[i].id != "" )
    {
      liste[i].className="tableTR";
    }
  }
  actual.className="tableTRActive";
}

Code:
<table align="top" id="content" cellspacing="0">
.
.
<tr id="0" class="tableTR" onclick="color(this)">
 
Ist ja merkwürdig...ich bin ziemlich sicher, dass der FF da früher auch nicht mitgespielt hat...das Verhalten des IE ist ja schliesslich korrekt :confused:
 
Hi,

@Sven - wir hatten das Problem schon mal und auch dort hatte nur der IE den Dienst quittiert.
DU hattest Dich damals sogar beinah zu einem Lob für MS-Produkt hinreissen lassen ;-)

Ciao
Quaese
 
Du machst mir Angst...was du so alles in den Tiefen des tutorials.de-Kellers findest ...;-] :-)

Aber wie aus dieser Karteileiche hervorgeht, macht der IE auch seinen Fehler... man kann dort trotzdem das name-Attribut ansprechen, obwohl es lt. getElementsByName() ignoriert wird.
 
Du kannst das Ganze auch automatisieren:
Code:
function highlightRow( obj )
{
	var trElements = document.getElementById("content").getElementsByTagName("tr");
	for( var i=0; i<trElements.length; i++) {
		trElements[i].className = "tableTR";
		trElements[i].onclick = new Function("highlightRow(this)");
	}
	if( obj ) {
		obj.className = "tableTRActive";
	}
}
window.onload = highlightRow;
 

Neue Beiträge

Zurück