首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环中的insertAfter

循环中的insertAfter
EN

Stack Overflow用户
提问于 2011-07-28 22:48:29
回答 4查看 4.5K关注 0票数 7

我有一些CMS生成的代码:

代码语言:javascript
复制
<div class="block">
  <a class="link" href="#">Link</a>
  <h4>Header here</h4>
  <div class="text">Some text here</div>
</div>

我需要将链接移到text div之后。我已经尝试过了:

代码语言:javascript
复制
$(document).ready(function() {
        $('.block').each(function() {
            $('.block a.link').insertAfter('.block div.text');                      
        });
    });

但这只会导致链接重复大约10次(循环的次数。

我尝试使用$(this),但我不太明白如何编写正确的语法来在函数中附加a.link ...如下所示:

代码语言:javascript
复制
 $(this).a.link.insertAfter($(this).div.text);
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-07-28 22:53:02

使用siblingsafter,这样的东西应该可以工作

代码语言:javascript
复制
$('.block a.link').each(function() {
    $(this).siblings('.text').after(this);
});

这意味着“对于每个匹配的元素,找到与.text匹配的元素,并在其后面插入原始元素”。

或者,您可以这样做:

代码语言:javascript
复制
$('.block a.link').each(function() {
    $(this).parent().append(this);
});

这假设您希望将元素放在div.block的末尾。

票数 8
EN

Stack Overflow用户

发布于 2011-07-28 22:53:02

你可以这样做(如果你想要它在带有类文本的div之后):

代码语言:javascript
复制
$(document).ready(function() {
    $('.block a').each(function(){
       $(this).next('div.text').after(this);
    });
   });

或者(如果你想把它放在div with class块之后)

代码语言:javascript
复制
$(document).ready(function() {
    $('.block a').each(function(){
       $(this).closest('div.block').after(this);
    });
   });
票数 1
EN

Stack Overflow用户

发布于 2011-07-28 22:53:19

试试这个:

代码语言:javascript
复制
$(document).ready(function() {
            $('.block').each(function() {
                var divtext = $('div.text', this)
                $('a.link', this).insertAfter(divText);
            });
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6860961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档