Markus Till: Fragen zur Verwendung von \ und '

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
}
-------

  1. Warum verwendet man hier (bzw. allgemein) den Backslash? Geht es auch ohne? Was bewirkt er hier?
  2. Wann muß ich " und wann ' verwenden?

Danke.
Ciao.
Markus

  1. Hi Markus,

    1. 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!"

    1. 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

    1. 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