firstElementChild funktioniert nicht in Internet Explorer 7 ... Was sind meine Optionen?

8

Betrachten Sie das folgende JavaScript:

%Vor%

Dies funktioniert in modernen Versionen von FireFox und Chrome, aber this.firstElementChild.value löst in Internet Explorer 7-8 eine Ausnahme aus. Gibt es eine andere Möglichkeit, dies für alle Browser zu nutzen?

UPDATE - ENDLÖSUNG

Ich ging mit dem folgenden:

v = (this.firstElementChild || this.children[0] || {}).value - Danke an alle.

    
dolphy 13.06.2011, 16:24
quelle

5 Antworten

7

Ich weiß nicht, vielleicht this.children[0].value ?

    
patapizza 13.06.2011, 16:30
quelle
8

this.firstElementChild sollte in jeder wichtigen Browserleiste IE & lt; = 9 und Firefox 3 ( QuirksMode ).

this.children[0] funktioniert in jeder wichtigen Browserleiste Firefox 3, außer dass IE & lt; = 9 Kommentarknoten als Elementknoten zählt ( QuirksMode ). Dies kann oder kann kein Problem für Sie sein.

Das Auffangsystem ist das:

%Vor%

firstElementChild ist dann das erste untergeordnete Element, wenn eines existiert, null andernfalls. Es wäre am besten zu sehen, ob this.firstElementChild existiert, bevor die Schleife ausgeführt wird, aus Leistungsgründen.

    
lonesomeday 13.06.2011 16:39
quelle
0

Wenn sich Ihr Code in einem Event-Handler befindet und die Funktion mit "attachEvent" verbunden ist, ist das Schlüsselwort "this" an das "window" -Objekt gebunden und nicht an das HTMLElement. Probieren Sie:

%Vor%

Überprüfen Sie Ссылка .

    
Prusse 13.06.2011 16:33
quelle
0

versuche folgendes:

%Vor%

althogh in modernen Browsern ersten Kind wird in der Regel Textsegment sein

    
Shlomi Komemi 13.06.2011 16:34
quelle
0

Wir haben dieses Problem mit IE11 festgestellt und festgestellt, dass .firstChild () eine zuverlässige Lösung für alle Browser ist.

    
Sammo 23.08.2017 03:51
quelle

Tags und Links