pepebe: Geschachtelte Anführungszeichen

Vielleicht sollte ich öfter mal ne Pause machen...

Sehe den Wald vor lauter Anführungszeichen nicht mehr. Vielleicht erkennt ein Unvorbelasteter das Problem.

for(i=0;i<NewCompass.length;i++){
 document.getElementById(NewCompass[i]).innerHTML = "<a href='' id='' class='"+CompassDir[i]+"' onClick='Set("+OldPos+","+NewCompass[i]+")'>"+CompassDir[i]+"</a>";
}

Der onClick Event "Set" soll zwei Variablen an die gleichnamige Funktion übergeben. Mir ist klar, daß die beinhalteten Strings z.B. Pos.2.2 und Pos.3.3 als STRINGS übergeben weren müssen, damit das Ergebnis (intern) so aussieht...

<a style="color: black;" id="" class="" onClick="Set('Pos.2.2','Pos.3.3')">SE</a>

1. Wie setze ich die "" in der Klammer richtig?

2. "Da fehlt doch ein href"... Ich habe das rausnehmen müssen, damit ich keinen Reload der seite erhalte. Kann ich das anders umgehen? Wie "falsch" ist das denn?

Hoffe auf euren wohlmeinenden Rat...

  1. hi,

    document.getElementById(NewCompass[i]).innerHTML = "<a href='' id='' class='"+CompassDir[i]+"' onClick='Set("+OldPos+","+NewCompass[i]+")'>"+CompassDir[i]+"</a>";

    nehmen wir's doch mal auseinander:

    "<a href='' id='' class='"
    +CompassDir[i]+
    "' onClick='Set("
    +OldPos+
    ","+NewCompass[i]+
    ")'>"
    +CompassDir[i]+
    "</a>"

    Der onClick Event "Set" soll zwei Variablen an die gleichnamige Funktion übergeben. Mir ist klar, daß die beinhalteten Strings z.B. Pos.2.2 und Pos.3.3 als STRINGS übergeben weren müssen, damit das Ergebnis (intern) so aussieht...

    <a style="color: black;" id="" class="" onClick="Set('Pos.2.2','Pos.3.3')">SE</a>

    bisher hast du um den wert des onClick-attributes noch einfache hochkommata.
    wenn du da doppelte nimmst - als " maskiert, damit sie den string nicht beenden - kannst du innerhalb um die variablenwerte einfache verwenden.

    also:

    "<a href='' id='' class='"+CompassDir[i]+"' onClick="Set('"+OldPos+"','"+NewCompass[i]+"')">"+CompassDir[i]+"</a>"

    </ muss übrigens auch noch maskiert werden, also </.

    1. "Da fehlt doch ein href"... Ich habe das rausnehmen müssen, damit ich keinen Reload der seite erhalte. Kann ich das anders umgehen? Wie "falsch" ist das denn?

    warum benutzt du überhaupt ein <a>, wenn's keines sein soll? onClick kannst du auch auf (fast allen) anderen elementen benutzen, bspw. auf einem span.

    (falls es doch ein a sein soll, verlinke auf #, und ergänze das onClick um ein return false;)

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hi,

      sag mal, bist du auch mal "off"? 5174 Treffer wenn ich "wahsaga" suche und das für 2005...

      Danke wie immer für deinen kompetenten Rat. Weiß ich wirklich zu schätzen.

      Das escapen von Anführungszeichen kenne ich aus php und das ich onclick auch auf fast jedes andere Element anwenden kann hätte mir SELFHTML auch verraten können: file:///d:/01%20-%20Documents/Docs%20Tutorials/05%20-%20Html%20Tutorials/Selfhtml/selfhtml80/javascript/sprache/eventhandler.htm#onclick

      Ich schäme mich und verneige mich erfürchtig vor deiner Gedult :))

      Schönen Abend noch und bis demnächst!!!

      Gruß,
      pepebe

      1. Hallo pepebe,

        sag mal, bist du auch mal "off"? 5174 Treffer wenn ich "wahsaga" suche und das für 2005...

        ganz so viele sind es doch nicht, wenn du nach author:wahsaga suchst, sind es "nur" 4066.

        Das escapen von Anführungszeichen kenne ich aus php und das ich onclick auch auf fast jedes andere Element anwenden kann hätte mir SELFHTML auch verraten können: file:///d:/01%20-%20Documents/Docs%20Tutorials/05%20-%20Html%20Tutorials/Selfhtml/selfhtml80/javascript/sprache/eventhandler.htm#onclick

        du meinst vermutlich http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onclick, oder? :-) (wobei deine lokale Version wohle eher http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onclick entspricht, sofern du nicht einfach die Version 8.1 über die Version 8.0 drübergebügelt hast)

        Grüße aus Nürnberg
        Tobias