为什么我的p标签在parseHTML之后被剥离了?

时间:2016-12-20 22:10:44

标签: jquery tags paragraph

我正在使用summernote,取出textarea中的内容并尝试保存到数据库。但是在保存到数据库之前,我正在剥离img base64疯狂并替换图像标记源。

但是,当我打印出从textarea收到的原始来源时。所有显示正常的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 个答案:

答案 0 :(得分:1)

当你在jQuery集合上调用.html()时,它只返回集合中第一个元素的HTML。

你应该做的是将HTML字符串包装在容器元素中,例如a DIV,然后获取其HTML:

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