var t = "";
$("div.postswrapper[data-value="+id2+"]").find("div.text.mainpost").children("p").each(function(p){
t+= $(this).text().trim()+"\n";
});
我现在有这个,它的工作是获取所有段落标签并将它们添加到字符串中。很简单现在我最难的部分是:
段落中可能包含0到n个img标签。例如
<p>hello<img src='https.imgur/image.png' data-raw='[img]https.imgur/image.png[/img]'>world!</p>
每个标签中都有一个字符串,其中包含一些原始数据,我需要将这些图像替换为字符串。例如,上面是
你好[img] https.imgur / image.png [/ img]世界!
我尝试过
t+= $((this).find('img').replaceWith($(this).find('img').attr('data-raw')).text()).text().trim()+"\n";
但由于(this).find函数在当前上下文中不存在而失败,这很可怕
任何帮助将不胜感激。
答案 0 :(得分:1)
使用find查找img标签,然后使用replaceWith函数
var t = "";
$("div.postswrapper[data-value="+id2+"]").find("div.text.mainpost").children("p").each(f unction(p){
p.find('img').replaceWith(function() { return this.data-raw; });
t+= $(this).text().trim()+"\n";
});
答案 1 :(得分:0)
请尝试以下操作:
var images = document.querySelectorAll('[data-raw]');
Array.from(images).forEach((image) => {
image.parentElement.replaceChild(
document.createTextNode(image.getAttribute('data-raw')),
image
);
})
答案 2 :(得分:0)
当您说原始时,您是指图像数据的base-64编码吗?
所以您的代码可能像这样工作:
$("div.postswrapper[data-value="+id2+"]").find("div.text.mainpost").children("p").each(function(p){
p.find('img').attr('src', `data:image/png;base64, ${this.data-raw}`); });
t+= $(this).text().trim()+"\n";
});