innerHTML abfragen
Stefan
- javascript
Hallo,
ich möchte feststellen ob ein Element wie dieses:
<div id="info"></div>
einen Inhalt hat oder nicht:
if (elm.innerHTML == "") // oder null
{
alert("leer");
}
else
{
alert("voll"):
}
Selbst wenn tatsächlich nichts drinsteht wird 'voll'
angezeigt. Woran liegt das?
Hallo Stefan.
ich möchte feststellen ob ein Element wie dieses:
<div id="info"></div>
einen Inhalt hat oder nicht:if (elm.innerHTML == "") // oder null
{
alert("leer");
}
else
{
alert("voll"):
}Selbst wenn tatsächlich nichts drinsteht wird 'voll'
angezeigt. Woran liegt das?
Bist du dir *absolut* sicher, dass obiges HTML deinem Testfall entspricht und du nicht doch Whitespaces (Leerzeichen, Zeilenumbrüche, Tabs) zwischen den Tags hast?
Alternativ könntest du im Übrigen auch die <http://de.selfhtml.org/javascript/objekte/node.htm#child_nodes@title=lenght-Eigenschaft der childNodes-Knotenliste> überprüfen.
Einen schönen Sonntag noch.
Gruß, Mathias
Morgäähn,
ich möchte feststellen ob ein Element wie dieses:
<div id="info"></div>
einen Inhalt hat oder nicht:if (elm.innerHTML == "") // oder null
{
alert("leer");
}
else
{
alert("voll"):
}Selbst wenn tatsächlich nichts drinsteht wird 'voll'
angezeigt. Woran liegt das?
also wenn dies der Original-Code ist, dann ersetz mal den ':' hinter alert("voll") durch ';' und sprich das div über seine ID an.
In obigem Beispiel könnte deshalb immer "voll" ausgegeben werden, weil elm.innerHTML nicht existiert, und diese Bedingung somit immer falsch ist - ist jetzt aber nur eine Vermutung, da das "elm" ja bestimmt irgendwo definiert ist...
Gruß,
Arthur D.
Hallo Stefan,
abgesehen von dem Doppelpunkt, der schon bemerkt wurde, solltest du einfach ausgeben
if (elm.innerHTML == "") // <-- if(!elm.innerHTML) waere schicker
{
alert("davor" + elm.innerHTML + "dahinter");
}
...
Dann weisst Du genau, woran du bist
Gruß,
Dieter
Hallo Dieter.
if (elm.innerHTML == "") // <-- if(!elm.innerHTML) waere schicker
Es ist aber ein Unterschied, ob der Wert der innerHTML-Eigenschaft leer ist oder ob es die Eigenschaft unter Umständen gar nicht gibt.
{
alert("davor" + elm.innerHTML + "dahinter");
}
Ich bevorzuge folgendes:
`alert('"' + elm.innerHTML + '"');`{:.language-javascript}
Einen schönen Sonntag noch.
Gruß, Mathias
--
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
„It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
[[HTML Design Constraints: Logical Markup](http://www.w3.org/History/19921103-hypertext/hypertext/WWW/MarkUp/HTMLConstraints.html)]
Hallo Mathias,
Ich bevorzuge folgendes:
alert('"' + elm.innerHTML + '"');
Im wahren Leben wuerde ich das auch so machen. Aber das ist fuer den OP moeglicherweise nicht so leicht verstaendlich.
Gruß,
Dieter