将每个元素附加到最近的锚点

时间:2016-03-11 17:37:25

标签: jquery

我有这个HTML:

<div class="col">
    <div class="prevnextbg">prevnextbg</div>
    <a href="#"></a>
</div>

<div class="col">
    <div class="prevnextbg">prevnextbg</div>
    <a href="#"></a>
</div>

我想接受每个.prevnextbg并将其添加到<a>内的.col内。

我试过了,但只是将所有.prevnextbg div添加到第一个<a>

$('div.prevnextbg').appendTo('.col a');

1 个答案:

答案 0 :(得分:2)

你不能在一次通话中做到这一点,你需要一个循环:

$(".prevnextbg").each(function() {
    $(this).siblings("a").append(this);
});

直播示例:

&#13;
&#13;
$(".prevnextbg").each(function() {
  $(this).siblings("a").append(this);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="col">
    <div class="prevnextbg">prevnextbg</div>
    <a href="#"></a>
</div>

<div class="col">
    <div class="prevnextbg">prevnextbg</div>
    <a href="#"></a>
</div>
&#13;
&#13;
&#13;

如果a元素可能不是兄弟,您可以

$(".prevnextbg").each(function() {
    $(this).parent().find("a").append(this);
});

代替。

也就是说,将标记修改为开头更好,而不是在事后重新排列。