Я пытаюсь динамически генерировать строки, содержащие HTML, и затем добавлять их в документ. Когда я console.log
строка, значение показывает точно, как я ожидаю. Но когда я добавляю его в HTML-документ, он как-то меняется.
for (var i=0; i < roster.length; i++) {
if (roster[i].attended === 1) {
var attendedSVG = 'user-check.svg';
}
else {
var attendedSVG = 'user-x.svg';
}
var _fkUserID = roster[i]._fkUserID;
var firstName = roster[i].firstName;
var lastName = roster[i].lastName;
var cancelJSFunction = "cancelRequest('"+_fkUserID+"', '"+firstName+"', '"+lastName+"', '"+day+"', '"+time+"');";
console.log(cancelJSFunction);
/* Returns: "cancelRequest('userID', 'firstName', 'lastName', 'day', 'time')" */
var html = "<div class='user'><img class='cx' src='x-square.svg' onClick='"+cancelJSFunction+"'></img>"+firstName+' '+lastName+"<img class='attended' src='"+attendedSVG+"'></img></div>";
$("#roster-container").append(html);
/* Appends:
<img class="cx" src="x-square.svg" onclick="cancelRequest(" userID',="" 'firstName',="" 'lastName',="" 'day',="" 'time')'="">
*/
}
Как получилось, что записывается и что добавляется, это две совершенно разные строки со всеми добавленными = ""?