JavaScript document.getElementById("dieId").value liefert unerwartetes Ergebnis

HTML:
<html>
<head />
<body>
    
    <div id="dieId" value="123" />
    
    <script type="text/javascript">
            
            alert(document.getElementById("dieId").value);
        
    </script>
    
</body>
</html>
Ich hätte erwartet daß "123" alerted wird. Ist aber undefined. Wo ist mein Denkfehler?
Browser ist der aktuelle Firefox, im IE funktionierts.
 
Zuletzt bearbeitet:
Du greifst hier auf ein Attribut zu, welches eigentlich nicht für ein <div /> vorgesehen ist. Daher musst du hier, statt mit den für einige standardisierte Attribute implementierte Funktion, den Attributknoten über die DOM-Funktionen ermitteln:

SELFHTML: JavaScript / Objektreferenz / node
 
Find ich toll wie einig sich IE und FF sind sich uneinig zu sein. Richtig spannend wirds bei:

HTML:
<html>
<head />
<body>
    
    <div id="dieId" value="123" />
    
    <script type="text/javascript">
            
            document.getElementById("dieId").value = "456"
            alert(document.getElementById("dieId").value);
            alert(document.getElementById("dieId").getAttribute("value"));
        
    </script>
    
</body>
</html>

Ich muss mich schon arg täuschen, aber daß der FF da anders reagiert wie der IE ist sehr seit kurzem so.

Ich liebe Webentwicklung :rolleyes:
 
hey odigo,
ich kann mich leider she3p nur anschließen:
verwende SAUBERES(!) HTML und du wirst die gewünschte Funktionsweise, relativ browser-unabhängig, bekommen.

Solange du HTML derartig vergewaltigst, kannst du nicht erwarten, dass Browser so reagieren, wie du es gerne hättest - das betrifft das Rendering genauso wie JavaScript...
 
Solange du HTML derartig vergewaltigst, kannst du nicht erwarten, dass Browser so reagieren,...

Hm, die letzten zig Jahre gings eigentlich ganz gut. Ich finds eigentlich traurig daß man über lange Zeit "Features" nutzen konnte über die man sich keine Gedanken gemacht hat weil man dachte "Wenns geht wirds so schon Standard sein" und plötzlich gehts nicht mehr. Aber daß man es dann gleich nach Referenz macht oder wenigstens dann wenn man an der Stelle was ändert ist wohl zu viel verlangt. Naja, ich halt mich so weit es geht aus dem Klickibunti-Geschäft raus, ganz ohne Zittern wenn mal wieder ne neue Version eines Browsers kommt geht es aber wohl doch nicht.
 
ganz ohne Zittern wenn mal wieder ne neue Version eines Browsers kommt geht es aber wohl doch nicht.

also ich versuche mich wo es nur geht an XHTML strict zu halten und fahre damit, was Browserkompatibilität angeht, auch recht gut.

Wenn Browser nicht-validen Code verarbeiten, ist das zwar 'ne schöne Sache, aber du darfst selbstverständlich nicht davon ausgehen, dass dieses Verhalten bei allen Browsern und allen Browser-Versionen gleich ist.
Wenn du dagegen ein paar Grundregeln einhältst (validen Code), dann kannst du recht problemlos browser-unabhängig funktionierende Scripte bauen.

Was bringt dich z.B. in deinem Fall dazu, einem DIV-Element ein value-Attribut zu verpassen? Um irgendwelche Daten versteckt zu speichern gibt es hidden-inputs - auf diese kannst du dann mit deinem
Code:
document.getElementById("dieId").value
problemlos zugreifen, da jeder Browser anerkennt, dass ein input auch ein value hat...
 
Zurück
Oben