indexOf
Christoph
- javascript
Hallo,
ich machs kurz:
Was ist denn an folgendem Code falsch??
<script type="text/javascript">
function click() {
if (document.getElementById('er').value.indexOf('t') == -1) {
alert('t vorhanden');
}
else {
var neuertext = document.createTextNode("juhu!");
document.getElementById("er").replaceChild(neuertext, document.getElementById("er").firstChild);
}
}
</script>
<table><tbody>
<tr><td name="er" id="er">text</td></tr></tbody></table>
<p><a href="javascript:click()">click!</a></p>
Fehler: document.getElementById("er").value has no properties
danke schon einmal,
Christoph
Yerf!
Fehler: document.getElementById("er").value has no properties
Eine <td> hat keinen Value.
Benutz entweder .firstChild.data oder .innerHTML
Gruß,
Harlequin
Benutz entweder .firstChild.data oder .innerHTML
Ok, danke...
habs jetzt statt ner Tabelle mit einer Textarea gemacht.
Allerdings habe ich jetzt noch ein anderes Problem:
Code:
<script type="text/javascript">
function click() {
if (document.getElementById('htmlcode2').innerHTML.indexOf('ä') != -1) {
var neuertext = document.createTextNode("ä");
document.getElementById("htmlcode2").replaceChild(neuertext, document.getElementById("htmlcode2").firstChild);
}
}
</script>
<textarea id="htmlcode2">hgfdsaäasdfgh</textarea>
<p><a href="javascript:click()">click!</a></p>
Wenn ich auf das "click!" klicke, dann sollte nur das "ä" mit "ä" ersetzt werden... es wird aber immer der ganze Salat, der in dem Textfeld steht ersetzt!
Was muss ich umprogrammieren, damit der restliche "Salat" stehen bleibt und nur das "ä" ersetzt wird??
danke,
christoph
Yerf!
habs jetzt statt ner Tabelle mit einer Textarea gemacht.
Das ist jetzt irgendwie doppelt gemoppelt... .innerHTML und .childNode wäre auch mit der Tabelle gegangen und die Textarea kennt .value
Wenn ich auf das "click!" klicke, dann sollte nur das "ä" mit "ä" ersetzt werden... es wird aber immer der ganze Salat, der in dem Textfeld steht ersetzt!
Klar, die ChildNode die ausgetauscht wird enthält den kompletten Text, die neu erzeugte nur das "ä".
Was muss ich umprogrammieren, damit der restliche "Salat" stehen bleibt und nur das "ä" ersetzt wird??
Ich denke, am besten wendest du replace auf .innerHTML oder .value an.
Wobei mir noch nicht ganz klar ist, was diese Ersetzung bringen soll und warscheinlich (zumindest bei innerHTML) musst du das "ä" durch "&auml;" ersetzen.
Gruß,
Harlequin
Was muss ich umprogrammieren, damit der restliche "Salat" stehen bleibt und nur das "ä" ersetzt wird??
Ich denke, am besten wendest du replace auf .innerHTML oder .value an.
Und wie geht das? Habe jetzt ein wenig rumprobiert. Komme aber nicht drauf :(
Code:
<script type="text/javascript">
function click() {
if (document.getElementById('htmlcode2').value.indexOf('ä') != -1) {
var neuertext = document.createTextNode("ä");
document.getElementById("htmlcode2").replaceChild(neuertext, document.getElementById("htmlcode2").firstChild);
}
/* [Hier stehen noch weitere Umlaute] */
}
</script>
<textarea id="htmlcode2">hgfdsaäasdfgh</textarea>
<p><a href="javascript:click()">click!</a></p>
Könntest du mir das freundlicherweise umprogrammieren??
Wäre wirklich sehr nett!!
Danke,
Christoph
Yerf!
Und wie geht das? Habe jetzt ein wenig rumprobiert. Komme aber nicht drauf :(
Der Code sieht jetzt aber nicht direkt danach aus...
Ok, ein paar Tips noch:
var box = document.getElementById('htmlcode2'); //damits kürzer wird
Wir wollen den value der Box ändern und der ist ein String, also:
box.value = box.value.replace(/ä/g,"ä");
Wegen der "komischen" Schreibweise: siehe http://de.selfhtml.org/javascript/objekte/string.htm#replace und dem Link auf die RegExp
Gruß,
Harlequin
Vielen Dank, dass du mir so hilfst!!
Habe jetzt ein wenig rumprobiert. Komme aber nicht drauf :(
Der Code sieht jetzt aber nicht direkt danach aus...
Habe eine Weile rumprobiert und als es dann nicht geklappt hat, habe ich den ursprünglichen Code gepostet.
Danke für den Code... es klappt, aber leider nur lokal, weil wenn ich die Datei hochlade, schaut der Code so aus:
» box.value = box.value.replace(/�/g,"ä");
Und somit wird das "ä" natürlich nicht ersetzt :(
Wie muss ich das "ä" denn da schreiben, dass es nicht zum "?" wird?
Hätte es ja schon so ausprobiert, funktioniert aber leider auch nicht:
» box.value = box.value.replace(/document.getElementById('ae').value/g,"ä");
... wobei das input-Feld "ae" unsichtbar ist!
Hast du da noch einen Tipp für mich ??
Danke schon einmal,
Christoph ;-)
Hey,
sorry für den Post... habs jetzt eh gefunden: http://aktuell.de.selfhtml.org/artikel/javascript/utf8b64/utf8.htm
Vorher habe ich irgendwie nicht den richtigen Suchbegriff parat gehabt...