Я хочу создать строку HTML, прежде чем добавлять ее к элементу. Вот строка:
var html = '<tr><td data-value = "' + someValue + '"></td></tr>';
$(el).append(html);
Значение в someValue равно 24". В нем есть ".
Когда HTML добавляется, элемент неправильный. По-видимому, добавление "24"" заставляет элемент распознавать только "24", и в конце есть один свободный ". Как я могу это сделать?
Я попытался заменить:
(someValue.indexOf('"') > 0 ? someValue.replace('"','\"') : someValue)
Но все равно ошибка сохраняется.
Возможный дубликат Заполните поле ввода строкой, содержащей двойную кавычку



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Используйте методы DOM (или их абстракции jQuery) вместо того, чтобы пытаться смешивать строки в действительный HTML.
var tr = $("<tr />);
var td = $("<td />)
.attr("data-value', someValue);
tr.append(td);
$(el).append(tr);
По какой-то причине это не может быть применено к моему решению. Я думал об этом.
Итак, согласно комментарию Квентина. Это работает:
(someValue.indexOf('"') > 0 ? someValue.replace('"','"') : someValue)
Спасибо!
Вы можете либо использовать методы jQuery, чтобы добавить значение, так как они будут экранировать его для вас, например,
attr()илиdata(), либо вы можете вручную закодировать его в HTML: stackoverflow.com/a/1219983/519413