如何更改所选元素的多个实例的位置

时间:2011-12-04 07:45:43

标签: jquery dom dom-manipulation

我需要将每个h3元素从下面的位置移动到新位置作为.summary-inside-wrapper的第一个孩子

我尝试的所有内容都将所有h3元素的实例移动到每个摘要中。我只需要移动每个摘要中的原始内容。

<div class="content-main">
   <div class="summary" id="listing_summary_3547">
      <div class="share"></div>
      <div class="summary-inside-wrapper">
         <div class="summary-inside">                <---- TO HERE ---| 
            <div class="left">                                        |
               <div class="title">                                    | 
                  <h3>unique text here 1</h3>      -- MOVE THIS h3 ---|      
                  <p>some other text here</p>
               </div>
            </div>
            <div class="right"></div>
         </div>
      </div>
   </div>
   <div class="summary" id="listing_summary_45741">
      <div class="share"></div>
      <div class="summary-inside-wrapper">
         <div class="summary-inside">                <---- TO HERE ---| 
            <div class="left">                                        |
               <div class="title">                                    | 
                  <h3>unique text here 1</h3>   --and MOVE THIS h3 ---|      
                  <p>some other text here</p>
               </div>
            </div>
            <div class="right"></div>
         </div>
      </div>
   </div>
   <div class="summary" id="listing_summary_6">
      <div class="share"></div>
      <div class="summary-inside-wrapper">
         <div class="summary-inside">                <---- TO HERE ---| 
            <div class="left">                                        |
               <div class="title">                                    | 
                  <h3>unique text here 1</h3>   --and MOVE THIS h3 ---|      
                  <p>some other text here</p>
               </div>
            </div>
            <div class="right"></div>
         </div>
      </div>
   </div>
</div>

我尝试过insertBefore(),prepend()以及更多没有想要的结果。每次我在摘要的每个实例中都获得每个h3的副本。

2 个答案:

答案 0 :(得分:4)

代码:

$(".title h3").each(function()
                    {
                       var item=$(this); 
                       var parentContainer=item.parents(".summary-inside");
                       item.remove();
                       parentContainer.prepend(item);
                    });

这是一个Live Demo

答案 1 :(得分:3)

这应该可以解决问题

 $( ".summary-inside-wrapper" ).each(function() {
    $( this ).prepend( $( this ).find( ".title > h3" ).html() );
    $( this ).find( ".title" ).remove();
});