如何使用jquery用动态元素替换标记

如何使用jquery用动态元素替换标记,jquery,html,Jquery,Html,我使用的是jquery3.4.1。我试图用动态创建的div元素替换html中的img标记。但是它总是被呈现为纯文本而不是html HTML: 脚本: $。每个($('.post-content-img'),函数(){ const imgSrc=this.src; this.closest('p')。替换为(``) }); 电流输出: 预期输出: 上面的文本html需要呈现为html元素 请在我错的地方提供帮助。您需要使用$(this)。而不是this。-调用jQuery功能而不是原生J

我使用的是
jquery3.4.1
。我试图用动态创建的
div
元素替换html中的
img
标记。但是它总是被呈现为纯文本而不是html

HTML:

脚本:

$。每个($('.post-content-img'),函数(){
const imgSrc=this.src;
this.closest('p')。替换为(``)
});
电流输出:

预期输出:

上面的文本html需要呈现为html元素

请在我错的地方提供帮助。

您需要使用
$(this)。
而不是
this。
-调用jQuery功能而不是原生JS,后者的工作方式不同

$。每个($('.post-content-img'),函数(){
const imgSrc=this.src;
$(this).closest('p').replaceWith('Test replacement`)
});

您需要使用
$(this)。
而不是
this。
-调用jQuery功能而不是原生JS,后者的工作方式不同

$。每个($('.post-content-img'),函数(){
const imgSrc=this.src;
$(this).closest('p').replaceWith('Test replacement`)
});


您是否尝试过使用
.html()
而不是
.replaceWith()
,这可能会解决您面临的问题。如果执行
$(this).closest('p').html()
它可以工作,但是我需要用我的html替换
p
标记。我不想将元素放在
p
标记中。请尝试使用
$(this).closest('p')[0]。outerHTML='hmm,这很有效。您能解释一下这是如何工作的吗?您是否尝试过使用
.html()
而不是
.replaceWith()
,这可能会解决您面临的问题。如果执行
$(this).closest('p').html()
它可以工作,但是我需要用我的html替换
p
标记。我不想将元素放在
p
标记中。请尝试使用
$(this).closest('p')[0]。outerHTML='hmm,这很有效。你能解释一下这是怎么回事吗?