JQuery - 如何在父元素之后插入元素?

时间:2014-04-08 08:54:05

标签: javascript jquery

我尝试查找页面上是否有元素。如果元素在页面上,则找到其父元素并将其插入该父元素之后。

JQuery的:

if($('.underline .catIcon').length > 0){
    $('.underline .catIcon').each(function(){
       $(this).insertAfter($(this).parent().find('h2')); 
       $(this).css('float','left');
    });
}

HTML:

<h2 class="underline">
  <div class="catIcon" style="padding-right: 10px;"><!-- element to move -->
    <img class="catIcon" alt="Projects" src="http://www.example.com/storage/images/category/on-site-support56x56.jpg" style="float: left;">
  </div>
  Projekty
</h2>
<!-- here before text and after h2 tag with class underline -->.text
<a class="link2 ui-link" target="_blank" href="http://www.example.com/cz/cs/22.html">>> info</a>

2 个答案:

答案 0 :(得分:3)

h2是父母的父元素,因此您需要使用.closest('h2'),而不是.parent().find('h2') - 它会在图片中查找h2元素& #39;父母(div

jQuery(function(){
    $('.underline .catIcon').each(function () {
        $(this).insertAfter($(this).closest('h2'));
        $(this).css('float', 'left');
    });
});

演示:Fiddle

答案 1 :(得分:0)

使用 closest()

你需要去父母.underline然后找不到这个

 if($('.underline .catIcon').length > 0){
        $('.underline .catIcon').each(function(){
           $(this).insertAfter($(this).closest(".underline")); 
           $(this).css('float','left');
        });
    }