.InnerText auswerten
Matthias
- javascript
Hallo zusammen,
wenn ich in einem JS-Script folgendes mache:
<script>
function schreiben(e, von_wo) {
...
str = "einblenden";
document.all.ol.innerText = str;
alert(document.all.ol.innerText == "einblenden");
...
}
</script>
bekomme ich bei
onClick="schreiben(event, 'ol')"><div id="ol"></div>
im Fenster "True" zurück.
Wenn ich allerdings den den Verweis auf das div-Element in der schreiben-Funktion weiter unten dynamisch zusammenbaue
function schreiben(e, von_wo) {
...
tmp = "";
tmp += "document.all.";
tmp += von_wo;
tmp += ".innerText";
txt += eval(tmp == 'einblenden');
// oder auch
txt += eval(tmp == "einblenden");
...
}
wird über die Variable "txt" "False" zurückgegeben.
Woran liegt das?
Danke für Hinweise,
Matthias
hi!
du baust deinen abfragestring in "tmp" mit strings zusammen,
javascript interpretiert das dann nciht mehr als objekt sondern nur als string und vergleichet dementsprechend den string "document.all."+vonwo+"".innerText" mit "einblenden", was natürlich false zurückliefert...
gruß
cheops
Hallo
txt += eval(tmp == 'einblenden');
// oder auch
txt += eval(tmp == "einblenden");
...wird über die Variable "txt" "False" zurückgegeben.
Und das stimmt ja auch. Du vergleichst hier den Stringinhalt von tmp mit "einblenden" und da diese nicht identisch sind wird FALSE ausgegeben...
Was du tun willst ist den Inhalt des durch tmp Referenzierten Elements zu vergleichen.
Wie das konkret geht weiss ich nu allerdings aus dem Stegreif grad nicht, aber vielleicht reicht das dir ja schon, um den Fehler zu beheben.
Grüsse, eeye
Hallo
Wie das konkret geht weiss ich nu allerdings aus dem Stegreif grad nicht, aber vielleicht reicht das dir ja schon, um den Fehler zu beheben.
Kuck mal hier: http://selfhtml.teamone.de/javascript/objekte/document.htm#get_elements_by_name
damit sollte das gehen...
Grüsse, eeye
document.all.ol.innerText = str;
alert(document.all.ol.innerText == "einblenden");
...
Das versteht sowieso kein guter Browser.
MfG
Avalon
Hallo,
Danke! OK, das habe ich verstanden, dass ich da zwei Stings miteinander vergleiche, wo "False" rauskommen muss.
Wie kann ich aber mit einer Funktion dynamisch auf die innerText-Eigenschaft von verschiedenen div-Elementen zugreifen?
Danke nochmals für weitere Hinweise,
Matthias
Hello again
Wie kann ich aber mit einer Funktion dynamisch auf die innerText-Eigenschaft von verschiedenen div-Elementen zugreifen?
Hatte ich das nicht schon in [pref:t=72201&m=415809] gepostet?
Also:
function schreiben(e, von_wo) {
txt += eval(document.getElementsByName(von_wo).innertext == "einblenden");
}
sollte gehen.. is aber untested...
Grüsse, eeye
Auch noch mal hallo,
hab' Deinen Ansatz natürlich ausprobiert, der geht aber leider auch nicht.
Wenn man allerdings auch noch die kleinen Schraibfeeler eliminiert ... :-(
Danke,
Matthias :-)
Hi
hab' Deinen Ansatz natürlich ausprobiert, der geht aber leider auch nicht.
Warum?
Wenn man allerdings auch noch die kleinen Schraibfeeler eliminiert ...
Du meinst du hast die Funktion getElementsByName durch getElementsByID ersetzt bzw. deinem Element ein "name" Attribut statt einer ID gegeben und jetzt tuts?
Danke,
Bitte :-)
eeye
Hey,
nein:
»»getElement>s<ByID
^
|
----> bei Dir ist das >s< zuviel !!! :-)
Matthias
Hallo
nein:
»»getElement>s<ByID
^
|
----> bei Dir ist das >s< zuviel !!! :-)
Korrekt. Echter Schreibfehler meinerseits.
Aber auch ohne "s" würde mein Beispiel mit deinem geposteten Code nicht funktionieren...
Wenn es also trotzdem tut, hast du irgendwas richtig gemacht und hoffentlich auch verstanden was... dann hätte allerdings mein erster link eigentlich gereicht ;-)
Grüsse eeye
hey,
Wenn es also trotzdem tut, hast du irgendwas richtig gemacht und hoffentlich auch verstanden was... dann hätte allerdings mein erster link eigentlich gereicht ;-)
alles bestens, Danke! war an einer anderen stelle auch noch ein schreibfehler!
matthias