2016-04-07 9 views
0

私はこのコードの構造によりクラスがあり、それぞれの子供要素を取得し、その親の前に挿入

..達成しようといくつかの理由があるために失敗しています:

<div class="catProductAttributeGroup"> 
    <div class="catProdAttributeTitle">TITLE 1</div> 
    Content for class "catProductAttributeGroup" Goes Here </div> 
<div class="catProductAttributeGroup"> 
    <div class="catProdAttributeTitle">TITLE 2</div> 
    Content for class "catProductAttributeGroup" Goes Here </div> 
<div class="catProductAttributeGroup"> 
    <div class="catProdAttributeTitle">TITLE 3</div> 
    Content for class "catProductAttributeGroup" Goes Here </div> 

はLIKE THISを表示するには: 私はtheresをinsertBefore()のタイトルにしたいと思っています。それで私は機能ラインの下に最初の行があるのです。これを用いた

<div class="catProdAttributeTitle">TITLE 1</div> 
<div class="catProductAttributeGroup"> Content for class "catProductAttributeGroup" Goes Here </div> 
<div class="catProdAttributeTitle">TITLE 2</div> 
<div class="catProductAttributeGroup"> Content for class "catProductAttributeGroup" Goes Here </div> 
<div class="catProdAttributeTitle">TITLE 3</div> 
<div class="catProductAttributeGroup"> Content for class "catProductAttributeGroup" Goes Here </div> 

$(".catProductAttributeGroup").each(function() { 
    if ($(this).find(".catProdAttributeTitle").length > 0) { 
     $(".catProdAttributeTitle").insertBefore($(".catProductAttributeGroup")); 
    } 
}); 

しかし、このLIKE最初の親の上にすべてのタイトルをレンダリング:

<div class="catProdAttributeTitle">TITLE 1</div> 
<div class="catProdAttributeTitle">TITLE 2</div> 
<div class="catProdAttributeTitle">TITLE 3</div> 
<div class="catProductAttributeGroup"> Content for class "catProductAttributeGroup" Goes Here </div> 
<div class="catProductAttributeGroup"> Content for class "catProductAttributeGroup" Goes Here </div> 
<div class="catProductAttributeGroup"> Content for class "catProductAttributeGroup" Goes Here </div> 

誰かがこのTHANKSの周りに私を助けてください!

答えて

2

の中に$(this)を使用すると、現在の要素を参照できます。要素がネストされている場合

$('.catProdAttributeTitle').each(function() { 
    $(this).insertBefore($(this).parent()); 
}); 

closest()代わりにparent()使用。

$(this).insertBefore($(this).closest('.catProductAttributeGroup')); 

Demo

+0

これは私が、私のミスを注意を払っていませんでしように、コードを生成したシステムです!私はちょうど.catProductAttributeGroup> .owl-stage-outer> .owl-stage> **。catProdAttributeTitle **のような他の3つのDivのラップされた内部でTittle Divを実現しました。最初の.catProductAttributeGroup – Skwashy

+1

@Skwashyはい、 '$(this).insertBefore($(this).closest( '.catProductAttributeGroup'));' – Tushar

関連する問題