Insertbefore jquery: .insertBefore() | jQuery API Documentation

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("Необработанный текст для вставки. Текст внутри диапазона для вставки. ")