2016-12-20 3 views
0

Я использую summernote, вытягивая содержимое в текстовом поле и пытаясь сохранить базу данных. Однако перед сохранением в базе данных я удаляю безумие img base64 и заменяю источник тегов изображений.Почему мои теги p выходят за пределы parseHTML?

Однако, когда я распечатываю исходный источник, полученный из текстового поля, делая. var mytext = $('#myid').summernote('code');, что все отображает в порядке. Показывает мои абзацы и изображение (в base64).

Но, если я использую JQuery, запустить что через parseHTML и попытаться считаны данные, я получаю следующие результаты:

var mymodedtxt = $(mytext).html(); - я получаю только первый абзац текста (печатается на консоли)

$(mytext).children().prop('outerHTML'); - Я получаю только первое изображение с измененным новым изменением.

<img src="/path/to/22019_5859a7b13a78c.jpeg" /> 

Перед тем, как напечатать их, я смонтировал пути изображения. Я только делаю это:

var i = 0; 
$(mytext).find('img').each(function() { 
    $(this).attr('src',newpath[i]); 
    i++; 
}); 

Кто-нибудь знает, что может быть причиной этого? Почему мои p-теги удаляются?

ответ

1

Когда вы вызываете .html() в коллекции jQuery, он возвращает HTML-код первого элемента в коллекции.

Что вам нужно сделать, это обернуть строку HTML в элемент контейнера, например. a DIV, а затем получить его HTML:

var mymodedtxt = $("<div>", { html: mytext }).html(); 
+0

Thanks mate! Я ценю это. Не было очень интуитивно, но я не большой парень jquery;) - проголосуйте! – Rogelio

+0

Большинство функций jQuery, возвращающих информацию, возвращают ее только из первого элемента коллекции. – Barmar