Code, um festzustellen, Wert der option funktioniert nicht wie erwartet
War ich versucht, um einige string-Vergleiche in javascript. Ich habe gesehen, dass mehrere tutorials und Beispiele, aber Sie scheinen nicht zu arbeiten. Mir fehlt etwas grundlegendes?
Versuch 1
function addAspect(aspect) {
var print = document.createElement('p');
var ptext;
if (aspect == "Option1") ptext = document.createTextNode("This is option1");
}
Funktioniert nicht.
Dann fand ich dieses Beispiel, zu dem alle Leserinnen und Leser sagte, es funktionierte gut
function addAspect() {
var print = document.createElement('p');
var ptext;
var aspect = String(document.getElementById("aspectResult").value);
if (aspect == "Option1") ptext = document.createTextNode("This is option1");
}
Funktioniert nicht.
Ich habe auch versucht .toString()
sowie die '==='
genaue übereinstimmung Vergleich.
Vollständigen code
<html>
<head>
<script type="text/javascript">
function addAspect()
{
var print = document.createElement('p');
var ptext;
var aspect = document.getElementById("aspectResult").value;
if (aspect == "Option1"){
ptext = document.createTextNode("This is option1");
}
print.appendChild(ptext);
document.getElementById("mainBlock").appendChild(print);
}
</script>
</head>
<body>
<form>
<select id="aspectResult">
<option value="Option1">Option1</option>
</select>
<input type="button" value="Check" onclick="addAspect()"/>
</form>
<span id="mainBlock"> </span>
</body>
</html>
Irgendwelche Vorschläge?
- Können Sie den html-Code für aspectResult?
- eine Warnung, die auf Aspekt in der Zeile vor der if-Anweisung und zu sehen, was in dem popup - Alarm(Aspekt);
- <select id="aspectResult"> <option value="Option1">Option1</option> </select> - eine option, so dass hings nicht bekommen kann verwirrend sein. Es ist in einem <form> - element. Danke. U.
- die Benachrichtigung funktioniert, und es sagt 'Option1'
- wenn Sie sagen, "funktioniert nicht" was bedeutet das?
- Die var 'drucken' funktioniert hier aber....versucht es mit einem zufälligen Stück text
- javascript-verwenden Sie single quate nur
'Options1'
- und Kleinschreibung. versuchen Sie zu warnen, den Aspekt und das Ergebnis sehen - das erste Teil ist einfach nicht wahr. In JavaScript, sowohl doppelte als auch einfache Anführungszeichen verwendet werden können für string-Literale.
- Wenn ich sage "nicht funktioniert" meine ich, dass 'funktioniert nicht' - es nicht zu tun, was die Sprache sagt. Die syntax wird mir sagen, was gedruckt werden soll auf dem Bildschirm, es ist nicht gedruckt, deshalb funktioniert es nicht
- Benachrichtigungen funktionieren gut, bevor und nachdem Sie der wenn
- siehe meine Antwort, nichts gedruckt, weil Sie einfach nicht drucken. Sie erstellen einen text-Knoten, aber nicht indem es überall!
- E - ich bin, wie ich oben erwähnt, ich habe nur unterdrückt, diesem Teil des code - ich habe getestet dieses Teil obwohl, indem Sie eine zufällige Menge an text, die statt des Wertes des Elements aspectResult
- drucken.appendChild(ptext); Dokument.getElementById("mainBlock").appendChild(print); - mainBlock ist ein <span> - dieser code funktioniert perfekt, aber wenn ich mit einem random text und nicht den Wert von element "aspectResult'
- die Art der Aspekt kam heraus, dass 'string' btw
- Ich habe auch überprüft dieses auf einer anderen Maschine zusammen - und es hat nicht funktioniert entweder...
- Die ersten beiden Blöcke von code nutzlos sind, sind beide Funktionen nicht, etwas zu produzieren.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zuerst eine kleine Einführung, wie dropdowns arbeiten:
Lesen Sie die ausgewählten Wert aus der dropdown-Liste auswählen, sollten Sie dies tun:
Dann erstellen Sie die
<p>
- element mit einem text-Knoten innerhalb:Danach können Sie fügen Sie die neu erstellte Absatz in den Behälter Ihrer Wahl:
Und jetzt alle zusammen!
Wenn Sie versuchen, um das
ptext
auf den Absatz, müssen Sie fügen Sie zwei Zeilen am Ende:print
ist weder ein reserviertes Wort, noch ein Zukunft reservierte Wort in ECMAScript.Ihre Funktion erzeugt einen text-Knoten, aber dann tut sich nichts, so dass Sie den code erscheint gar nichts tun zu müssen. Sie müssen fügen Sie den text-Knoten ein element irgendwo in der DOM:
Ihre vollständigen code scheint zu funktionieren gut in IE9, Firefox 4 und Chrome 11. Sehen http://jsbin.com/ekura5/.