Fragen zur Verwendung von \ und '
Markus Till
- javascript
Hallo!
Auf der Suche nach einer Möglichkeit der dynamischen Änderung der Textfarbe mit dem NN bin ich auf eine im Forumsarchiv erwähnte Seite gekommen (<a href="http://www.webreference.com/js/column4/workaround.html">http://www.webreference.com/js/column4/workaround.html</a>).
Der Code funktioniert, aber da meine Kenntnisse in Java Script noch sehr bescheiden sind, hätte ich da mal ein paar Fragen zu dem folgenden Code:
------
function swapClass(text, spanName, urlName, oldName, highName, over) {
if (bVer < 4) { // old browser
return; // terminate the function
}
// create a new string for the link
var str = "<A CLASS='" + highName + "' HREF='" + urlName + "'";
if (over) {
// replace onMouseOver with onMouseOut
// replace true with false
str += " onMouseOut="swapClass('" + text + "', '" + spanName +
"', '" + urlName + "', '" + highName +
"', '" + oldName + "', false)">";
} else {
// replace onMouseOut with onMouseOver
// replace false with true
str += " onMouseOver="swapClass('" + text + "', '" + spanName +
"', '" + urlName + "', '" + highName +
"', '" + oldName + "', true)">";
}
str += text + "</A>";
display(spanName, str); // update the code
}
-------
Danke.
Ciao.
Markus
Hi Markus,
- Warum verwendet man hier (bzw. allgemein) den Backslash? Geht es auch ohne? Was bewirkt er hier?
Der Backslash wird verwendet, um ein Zeichen zu maskieren. Beispiel:
str += " onMouseOut="swapClass('" + text + "', '"
Der Variablen str wird hinzugefügt (+=) ein String, und der steht innerhalb von "". Jetzt kommt aber innerhalb des Strings selber ein " vor (vor swapClass z.B.). Einfach so hingeschrieben würde der Interpreter dieses " als Zeichen für ein Ende des Strings interpretieren, und es würde völliges Chaos entstehen. Der \ aber maskiert genau deshalb das ", d.h. für den Interpreter: "Das ist nur ein Zeichen und hat nichts für Dich zu bedeuten!"
- Wann muß ich " und wann ' verwenden?
Das ist im wesentlichen Dir überlassen. Eine abwechselnde Verwendung spart Dir ab und an das Maskieren per , was sich halt doch leichter schreibt. Du musst nur aufpassen, dass Du nicht durcheinander kommst, denn etwas, das mit ' anfängt, muss mit ' aufhören (gilt natürlich auch für ") - insbesondere Anfänger fliegen dabei regelmäßig aus der Kurve (ging mir auch so). Und noch was: wenn Du innerhalb Deines Scripts HTML-Elemente hast, müssen dort natürlich " verwendet werden, weil in HTML ' keinen Sinn macht. Beispiel:
document.write('<p class="gelaber">Laber Laber</p>'; funzt,
document.write("<p class='gelaber'>Laber Laber</p>"; dagegen geht in die Hose.
Was aber dann wieder ginge, wäre
document.write("<p class="gelaber">Laber Laber</p>";
weil korrekt maskiert.
Alle Klarheiten beseitigt?
Grüße,
Utz
Hallo Utz,
vielen Dank für die Mühe. Ich glaub ich hab's geschnallt :-). Sonst meld ich mich halt nochmal.
Generell fallen mir solche Kleinigkeiten aber schwer und leider bringt hier auch eine Volltextsuche in SelfHTML meist kein Ergebnis.
Markus