javascript — jQuery — insertBefore() для необработанного текста
спросил
Изменено 5 лет, 8 месяцев назад
Просмотрено 1к раз
Я использую jQuery 1.11.2 и jQuery-migrate 1.2.1. Вот простой пример того, что я пытаюсь сделать:
https://jsfiddle.net/bek3wrug/
Я хочу вставить некоторый текст (не полностью заключенный в HTML-тег) перед некоторым элементом на странице, а jQuery вставляет только ту часть, которая заключена в HTML-тег.
Я не могу использовать prepend()
, так как я не хочу вставлять его внутрь какого-то элемента, мне нужно вставить его перед .
Есть ли способ заставить jQuery вставлять весь текст, а не только заключенный в теги HTML?
- javascript
- jquery
- html
2
Поскольку он содержит textNode, вам нужно использовать метод jQuery. parseHTML
, который генерирует массив узлов. В противном случае он будет интерпретирован как селектор, и ничего не произойдет, так как ничего не будет выбрано с помощью строки.
$($.parseHTML("Необработанный текст для вставки. Текст внутри диапазона для вставки. ")).insertBefore("#mySpan")
См. Создание новых элементов с помощью jQuery.
$($.parseHTML("Необработанный текст для вставки. Текст внутри диапазона для вставки. ")).insertBefore("#mySpan")
<дел>
Исходный текст
Или используйте метод before()
.
$("#mySpan").before("Необработанный текст для вставки. Текст внутри диапазона для вставки. ")
$("#mySpan").before("Необработанный текст для вставки. Текст внутри диапазона для вставки. ")