"SyntaxError: missing ) after argument list"
Bin ich immer diese Fehlermeldung im firebug:
SyntaxError: missing ) after argument list
Aus diesem code:
table +=
'<tbody>'+
'<tr>'+
'<td>'+this.zona+'</td>' +
'<td>'+this.rruga+'<br/><div id="dialog-'+this.id+'" style= "margin-left:1px; width:340px; display:none;height:180px"></div></td>' +
'<td>'+this.dita+'</td>' +
'<td><img src="images/map.jpg" id = "mapicon" onClick="show(this.rruga, this.id);"></td>' +
'<tr>'+
'<tbody>';
Ich bin nicht ganz sicher, die Klammer )
fehlt in meinem code.
- Ihre string-Verkettung, ist nicht sinnvoll.
- in der Tat Ihre string-Verkettung ist nicht verketten
onClick="show(this.rruga,this.id);"
- Es scheint sich nicht um einen syntax-Fehler. Aber es ist sicherlich nicht das, was Sie wollen. Entweder dein code ist anders oder die syntax-Fehler geworfen wird woanders.
- Ich nehme an, wir sehen nicht genug, und das OP einfach nur eingefügt von einigen HTML-Generierung code.
- Dies ist der vollständige code:
- Ich Wette, Sie ist es nicht. Siehe meine Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht verwenden
this
innen " .Darüber hinaus müssen Sie
getAttribute()
umrugga
Wert aus, das jeweilige element.Hier ist eine funktionierende fiddle.
show
Funktionshow
im fiddle mit Ihrer Funktion, überprüfen Sie die Geige. ändern Sie die<img>
nach der Geige und sehen, ob es für Sie arbeitet.Diese aufgrund Ihrer Nutzung der
+
mit Ihren angeboten. Geben Sie den codegeneriert HTML-Code, der aussieht wie
Dieser wird offensichtlich nicht arbeiten, da Ihre Funktion die Argumente nicht mehr richtig zitiert, so behandelt werden, als Variablen-Namen, dann die Räume, die Ursache der exception geworfen werden. In einem worst-case-Szenario, dass Sie nicht
this.rruga
oderthis.id
zitiert oder HTML-codiert, jemand könnte möglicherweise pass ein speziell gestaltetes Stück code, das würde Spritzen benutzerdefinierten HTML-Code in die Seite.Können Sie halten mit einem string so lange, wie Sie codieren Ihre Argumente Sie sind also HTML-und sicher nicht das Ende der Zitate, und dann das hinzufügen von Anführungszeichen, um Sie (
\'
).HTML+JavaScript codiert sind Zitate
\\"
für\"
und\\'
für\'
. Die vorangegangenen\\
ist, so dass es nicht zu brechen die JavaScript Zitate, dann die&foo;
ist die HTML-Codierung für das Zeichen.Als Sie generieren, die all dies in JavaScript, überlegen Sie, ob Ihre Hörer aus dem HTML-string und fügen Sie dem element mit
addEventListener ()
oder einfachnode.onclick
. Dies bedeutet, Sie können die Erben den Umfang, wo Sie sind in der Funktion, die Sie möchten (obwohlthis
wird sich noch ändern, dass das Knoten), und wenn Sie mit DOM-Methoden, die Sie haben viel weniger zu befürchten, durch spezielle Kodierung der browser wird die Arbeit für Sie tun.BEARBEITEN werde ich eine Funktion hinzufügen, um es einfach für Sie
+
sind nur ein Teil der Zeichenfolge, der code an sich ist eigentlich syntaktisch korrekt ist.(''+foo)
ist zu zwingen, den string so, dass.replace
definiert ist. Ich Tat dies, da weiß ich nicht Ihre Daten geben.Ich nehme an, was du gepostet hast ist ein Teil von einem Befehl, so gibt es eine vorausgehende
'
.Erhalten Sie diese Fehlermeldung, wenn
this.rruga
hat spezielle Zeichen, beispielsweise ein Leerzeichen.. z.B.: der code wird etwas erschaffen, wieshow(hello there, 12);
ist syntaktisch falsch. Sie können dies überprüfen, indem Sie nur die überprüfung der generierten html-Inhalt.Lösung: Setzen Sie das argument in Anführungszeichen eingeschlossen. ...
\''+this.rruga+'\'
...