Я пытаюсь заполнить элемент DOM идентификатором «myElement». Содержимое, которое я заполняю, представляет собой смесь текста и элементов HTML.
Предположим, что следующим является содержимое, которое я хочу заполнить в моем элементе DOM.
var x = "<b>Success</b> is a matter of hard work &luck";
Я попытался использовать innerHTML следующим образом,
document.getElementById("myElement").innerHTML=x;
Это привело к отрыванию последнего слова в моем предложении.
По-видимому, проблема связана с символом «&», присутствующим в последнем слове. Я поиграл с '&' и innerHTML, и вот мои наблюдения.
- Если последнее слово содержимого содержит менее 10 символов и если в нем присутствует символ «&», innerHTML обрезает предложение в «&».
- Эта проблема не возникает в Firefox.
- Если я использую innerText, последнее слово в такте, но тогда все теги HTML, которые являются частью содержимого, становятся простым текстом.
Я попытался заполнить с помощью метода #html в jQuery,
$("#myElement").html(x);
Этот подход решает проблему в IE, но не в chrome .
Как я могу вставить контент HTML с последним словом, содержащим '&', без обрезки во всех браузерах?
Обновление : 1. Я попробовал html-кодирование содержимого, которое я пытаюсь вставить в DOM. Когда я кодирую содержимое, HTML-теги, которые являются частью содержимого, становятся простой строкой.
Для вышеупомянутого содержимого я ожидаю, что результат будет отображаться как
Успех - это вопрос тяжелой работы и удачи
но когда я кодирую то, что я на самом деле получаю на отображаемой странице,
<b>Success</b> is a matter of hard work &luck