Programmieren für IE4
Penner
- javascript
0 MudGuard0 Joachim0 Stefan Muenz0 Norbert Klein0 Penner
Hallo,
ich versuche mit dem all-Objekt auf ein verschachteltes div (im Beispiel wanted-div) zuzugreifen:
<div id="div1">
<div id"wanted-div">
</div></div>
Mit Dom-W3c-Standard geht's so:
obj=document.getElementById('div1').getElementsByTagName('div')['wanted-div'];
Wie geht's mit dem all-Objekt von IE4?
Im Werk es Meisters ist keine Lösung zu finden.
Thx
Penner
Hi,
Hallo,
ich versuche mit dem all-Objekt auf ein verschachteltes div (im Beispiel wanted-div) zuzugreifen:
<div id="div1">
<div id"wanted-div">
^ = nicht vergessen!
</div></div>
obj = document.all['wanted-div'] //?
Mit Dom-W3c-Standard geht's so:
obj=document.getElementById('div1').getElementsByTagName('div')['wanted-div'];
oder direkt:
obj = document.getElementById('wanted-div');
(id muß ja dokumentweit eindeutig sein, also spielt die Schachtelung keine Rolle...)
cu,
Andreas
hi,
ich versuche mit dem all-Objekt auf ein verschachteltes div (im Beispiel wanted-div) zuzugreifen:
<div id="div1">
<div id"wanted-div">
</div></div>
obj=document.all["wanted-div"];
obj=document.getElementById('div1').getElementsByTagName('div')['wanted-div'];
warum nicht: obj=document.getElementById("wanted-div");
ID ist doch vorhanden.
Gruesse Joachim
Hallo Penner,
Mit Dom-W3c-Standard geht's so:
obj=document.getElementById('div1').getElementsByTagName('div')['wanted-div'];
Nein. Damit geht es so:
document.getElementById("wanted-div")
Jedes Element, das ein id-Attribut hat, ist direkt ansprechbar.
Und bei Anwendung von document.getElementsByTagName() spielen Verschachtelungen auch keine Rolle. Da wird einfach gezaehlt, das wievielte Element eines Namens im Dokument gewuenscht wird. Denn fuer jeden vorkommenden Elementnamen gibt es einen einfachen, eindimensionalen Array.
Wie geht's mit dem all-Objekt von IE4?
document.all("wanted-div")
Im Werk es Meisters ist keine Lösung zu finden.
Keine Ahnung, welches du meinst. Aber ich kenne zumindes eins, was nicht weit weg ist von hier, und wo das alles sehr wohl klar und deutlich erklaert wird. Lesen muss man halt selbst.
viele Gruesse
Stefan Muenz
Korrektur
document.all("wanted-div")
Nein: document.all.wanted_div
Und bei Verwendung in JavaScript bitte auch keine Bindestriche im id-Namen vergeben ...
viele Gruesse
Stefan Muenz
Korrektur
Nein: document.all.wanted_div
Hallo,
Danke für die schnellen Antworten.
Ich bin aber darauf gekommen, dass beim IE gar keine Definitionen dieser Art notwendig sind.
IE kennt sowieso schon immer alle divs, die im Dokument vorkommen. Man braucht also nur zu schreiben:
wanted_div.blahblah
CU
Penner
Hallo.
Na ja, wenn's kein document.getElementById gibt, kann man sich ja einfach eins basteln:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>document.all => document.getElementById</title>
<script type="text/javascript">
<!--
if(document.all && !document.getElementById)
{
function document.getElementById(id)
{
return document.all[id];
}
}
//-->
</script>
</head><body>
<a href="#" onclick="document.getElementById('buh').style.visibility = 'visible'">BUH?</a>
<h1 id="buh" style="visibility:hidden;">BUH!</h1>
</body></html>
Hat dann den Vorteil, dass man nicht alles für document.getElementById und für document.all schreiben muss, sondern sich einfach auf document.getElementById beschränken kann. Ob und inwiefern das Praxistauglich ist, müsste man natürlich ausprobieren, aber in Bezug auf style sollte es da keine Prbleme geben.
Gruß
Norbert
Hallo.
function document.getElementById(id)
Hallo,
Ich würde meinen, der Punkt ist ein Operator, und im Funktionsnamen darf kein Operator ausser dem call-Operator () enthalten sein?
CU
Penner
Hallo.
function document.getElementById(id)
Ich würde meinen, der Punkt ist ein Operator, und im Funktionsnamen darf kein Operator ausser dem call-Operator () enthalten sein?
Der Punkt mag ein Operator sein, aber im Funktionsnamen (= getElementById) ist kein Punkt drin. getElementById ist eine Methode die dem document-Objekt untergeordnet ist/wird.
Das ist bei normalen Funkionen doch auch so, du kannst ja auch
function window.MeineFunktion()
schreiben, was das selbe wie
function MeineFunktion()
ist, da aber sowieso (fast) alles dem window-Objekt untergeordnet ist, kannst du das window eben auch weg lassen.
Gruß
Norbert