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

时间:2012-02-01 10:27:22

标签: javascript jquery html

我现在正在努力使用这段代码。 希望你能帮助我:) 我试图实现的目标:

  1. 找一个元素。
  2. 在(1)中找到的元素后面的元素后插入html。
  3. 这是我的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+'"]');
    

    因此找到元素有效,但在此之后不跳过元素然后插入。

    干杯, 罗伯特

4 个答案:

答案 0 :(得分:1)

因为您正在寻找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'));

答案 1 :(得分:0)

试试这个:

如果.paragraph元素是.icons的父元素,那么next()将无效,因为它会查找兄弟元素。您需要使用find()来获取子元素:

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

答案 2 :(得分:0)

我认为你想要的是:

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

您可能需要考虑哪些数据 - 是html还是元素?

答案 3 :(得分:0)

这是你的意思吗?

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