Ich versuche, Parameter zu einer onclick-Funktion beim Generieren von HTML via Javascript hinzuzufügen. Wenn ich den Code inspiziere, setzt er ein Anführungszeichen in den Parameter der onclick-Funktion.Zufälliges Anführungszeichen, das in generierten onclick html-Parameter eingefügt wird
var lengthOfCats = ArrayOfCategories.length;
for (var a = 0; a < lengthOfCats; a++) {
$("#CatTable").append("<div class='better-table-cell'>" + ArrayOfCategories[a].Name + "</div>\
<div class='better-table-cell'>" + ArrayOfCategories[a].DepartmentName + "</div>\
<div class='better-table-cell'>" + ArrayOfCategories[a].Active + "</div>\
<div class='better-table-cell'>\
<button onclick=OpenUpdateCat(" + ArrayOfCategories[a].CategoryID + "," + ArrayOfCategories[a].Name + ");" + ">Edit</button>\
</div>");
Hier ist ein Bild des HTML, das für die Bearbeitungsschaltfläche generiert wird.
Sie scheinen ein Problem mit der Verkapselung von Zeichenfolgen im Allgemeinen zu haben; Das vollständige onclick-Attribut befindet sich nicht in '' 'oder' ''. Je nach Kontext sollte auch 'ArrayOfCategories [a] .Name' von (mit Escapezeichen versehenen) Anführungszeichen eingeschlossen sein. – Matschek
Der Browser versucht lediglich, die Syntax Ihres Codes zu korrigieren Sie müssen HTML-Attribute in doppelte Anführungszeichen einschließen und JavaScript-Strings entweder in einfache Anführungszeichen oder in Anführungszeichen einschließen. Sie tun keines dieser Dinge. – David
Der Screenshot, den Sie gepostet haben, ist 99% nicht der Realer erzeugter Quellcode: Wenn Strings + Attribute wegen fehlender '' '' '' '' zerschmettert werden, versucht Firefox/Chrome am besten, ihn in gültigen Code umzuwandeln, und das Ergebnis sehen Sie hier im DOM-Explorer. – Matschek