2016-03-21 17 views
-2

以下の構造を持っています。jqueryを使用して子ノードからターゲット親ノード

<dl> 
    <dt class="tab">..</dt> 
    <dd class="tab-container">..</dd> 
    <dt class="tab"> 
     <div class="hi">hello</div> 
    </dt> 
    <dd class="tab-container">...</dd> 
    <dt class="tab">...</dt> 
    <dd class="tab-container">...</dd> 
</dl> 

"hi" divをクリックすると、最後のdd要素に新しいクラスを追加したいと思います。jqueryを使用して達成できますか?

+0

どのようなコードを試してみましたか? – shamsup

+0

stackoverflowは、**既存の**コードと* giv-me-the-codez *サイトの問題を解決するためのものです。 – cramopy

答えて

1

トラバースを習得しようとします。あなたの質問に答えてください[コメントで尋ねた]

$(this).parents('dl').prev().closest('ul').children('li').eq(-2).addClass('new classs'); 
3

あなたは、関連するdd祖先を取得するためにclosest()として使用して、ターゲットにすることができ、最後のdl

$('div.hi').on('click', function(){ 
    $(this).closest('dl').children('dd:last-child').addClass('myNewClass'); 
}); 
+0

最後の2番目のターゲットをターゲットにする方法は? – user5962477

+0

@ user5962477負のインデックスを持つ 'eq()'を使用してください: '$(this).closest( 'dl')。children( 'dd')。eq(-2)' –

+0

thanks.oneもっと質問できます。

タグの下にない他の要素。 – user5962477

1

あなたはこのような何かしたいように聞こえる:

$(".hi").click(function() { 
    $(this).closest("dl").find("dd:last-child").addClass("blue"); 
}); 

例:https://jsfiddle.net/z24toqL2/

0

を1つの方法はjQuery.parentsを使用してが見つかるまでDOMツリーをトラバースすることです要素。ここで

$('.hi').on('click', function() { 
    $(this).parents('dl').find('dd:last').addClass('my-new-class'); 
}); 

は、DOMツリートラバーサルのためのjQuery API documentation categoryだ - それを行うには複数の方法があります。

1

こんにちは:)親()または親() - documentation for parents()を使用できます。

だから、これを試してみてください。

$('.hi').on('click', function() { 
    // In that case- parents('dl') - try to catch a dl parent 
    $(this).parents('dl').find('dd:last-of-type').addClass('new-class'); 
}); 

あなたがview online here in jsfiddleことができます。

関連する問題