zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden Wie funktioniert nextSibling?

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 14.11.2007, 13:29
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 29.06.2006
Beiträge: 65
wuschba befindet sich auf einem aufstrebenden Ast
Standard Wie funktioniert nextSibling?

Hallo! Ich habe folgenden html-code (vereinfachtes Beispiel):

Code:
<div><img src="pic1" onmouseover="Over(this);"></div>
<div style="display:none;"><img src="pic2"></div>
Ich möchte nun in der Funktion Over() Zugriff auf das 2. Div erhalten, um das display dort zu ändern. Ich möchte jedoch nicht mit Ids arbeiten. also:

Code:
function Over(imgElement) {
  var myparent = imgElement.parentNode;
  var mydiv = myparent.nextSibling;
  if (mydiv == NULL)
  	  alert("NULL");
   else	{
          alert(mydiv.tagName);
          mydiv.style.display = "none";
   }
}
Während parent richtig ist (gecheckt durch Satzen und Ausgabe einer id), ist mydiv jedoch immer NULL. Was mache ich denn falsch?

Geändert von wuschba (14.11.2007 um 13:32 Uhr)
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 14.11.2007, 13:44
Benutzerbild von Gumbo
XHTMLforum-Kenner
 
Registriert seit: 22.08.2004
Ort: Trier
Beiträge: 2.733
Gumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekannt
Standard

Auch Leerraum erzeugt einen eigenen Knoten. In deinem Fall ist das der Zeilenumbruch zwischen den beiden DIV-Tags. Du müsstest also zwei Geschwister weitergehen:
Code:
function Over(imgElement) {
	var myparent = imgElement.parentNode;
	var mydiv = myparent.nextSibling.nextSibling;
	if( mydiv == undefined ) {
		alert("NULL");
	} else {
		alert(mydiv.tagName);
		mydiv.style.display = "block";
	}
}
__________________
Markus Wulftange
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 14.11.2007, 13:46
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 29.06.2006
Beiträge: 65
wuschba befindet sich auf einem aufstrebenden Ast
Standard

Top, danke!
Mit Zitat antworten
  #4 (permalink)  
Alt 14.11.2007, 14:44
Alles- & Nixkönne
XHTMLforum-Mitglied
 
Registriert seit: 05.10.2006
Ort: Hamburg
Beiträge: 156
Ernie wird schon bald berühmt werden
Standard

Der IE erkennt den Texknoten nicht, daher noch in einer while-Schleife den nodeType Prüfen, also etwa so:

Code:
function Over(imgElement) {
	var myparent = imgElement.parentNode;
	var mydiv = myparent.nextSibling;
         while(mydiv.nodeType!=1){
             mydiv=mydiv.nextSibling;
          }
	if( mydiv == undefined ) {
		alert("NULL");
	} else {
		alert(mydiv.tagName);
		mydiv.style.display = "block";
	}
__________________
Rechtschreibung und Grammatik beherrsche ich perfekt, ich wende sie nur nicht an

Geändert von Ernie (14.11.2007 um 15:17 Uhr) Grund: zunächst zu Umständlich
Mit Zitat antworten
Antwort


Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mouseover funktioniert nicht (externe Methode) blackhtml CSS 2 07.04.2009 17:49
Overflow hidden funktioniert im firefox nicht Lena83 CSS 10 03.12.2008 18:18
Seltsam! "&" funktioniert - "&amp;" nicht! RollingStones Javascript & Ajax 4 22.01.2008 09:20
dtd und css in php funktioniert im IE nicht!!! da-lick CSS 17 09.06.2007 15:44
min-width funktioniert lokal andip Javascript & Ajax 3 06.06.2006 20:13


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:34 Uhr.