找到一个元素,然后在下一个元素之后插入内容

Find an element, then insert content after the next

本文关键字:元素 下一个 之后 插入 然后 一个      更新时间:2023-09-26

在过去的几个小时里,我一直在努力处理这段代码。希望你能帮我:)我努力实现的目标:

  1. 查找元素
  2. 在(1)中elment后面的元素后面插入html

这是我的HTML:

<div class="paragraph" data-template="1" data-id="1"></div>
<div class="icons"></div>

我想在元素后面插入"icons"类,所以我尝试:

$(data).insertAfter('.paragraph').find('[data-id="'+appendAfter+'"]').next('.icons');

其中$(data)是HTML字符串

这是失败的。如果我删除next()函数,它会在图标之前插入,但这不是我想要的:

$(data).insertAfter('.paragraph').find('[data-id="'+appendAfter+'"]');

因此,查找元素是可行的,但不能跳过之后的元素然后插入。

干杯,Robert

因为您正在寻找next,所以跳过div.paragraph会像这样关闭

<div class="paragraph" data-template="1" data-id="1"> ..something.. </div>
<div class="icons">

如果是这样的话,只更正你的代码

$(data).insertAfter($('.paragraph[data-id="'+appendAfter+'"]').next('.icons'));

或者如果div.paragraphdiv.icons的父级,则表示不像上面那样关闭,将其作为

$(data).insertAfter($('.paragraph[data-id="'+appendAfter+'"]').find('.icons'));

试试这个:

如果.paragraph元素是.icons的父元素,那么next()将不起作用,因为它会查找同级元素。您需要使用find()来获取子元素:

$('.paragraph[data-id="' + appendAfter + '"]').find('.icons').after(data);

我想你想要的是:

$(".paragraph").next().after(data)

您可能需要考虑什么是数据——是html还是元素?

这就是你的意思吗?

$('.paragraph').next('.icons').after(data);