2016-05-14 10 views
1

私は、最も近い/親ulの中で特定のli要素を取得しようとしていますが、動作させられないようです。 divがli要素内にある場合にのみ機能します。jqueryを使用してoutter親ULを取得してください

<ul> 
    <li>Test 1</li> 
    <li>Test 2</li> 
    <li>Test 3</li> 
</ul> 
<div> 
    <a id="a_test" href="#" onclick="Javascript:get_li(this);">Test</a> 
</div> 

function get_li(oElement) { 

    console.log("ul", $(oElement).parent("ul").find("li")[0]); 

} 

答えて

1

$('#a_test').click(function() { 
 

 
    var text = $(this).parent().prev('ul').find('li:nth-child(1)').text() 
 
    alert(text) 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
    <li>Test 1</li> 
 
    <li>Test 2</li> 
 
    <li>Test 3</li> 
 
</ul> 
 
<div> 
 
    <a id="a_test" href="#">Test</a> 
 
</div>

あなたはその後、その後、.find()

+0

魅力のように働いた! – palmtown

+0

@palmtownうれしいです..幸せなコーディングメイト:) – guradio

+0

@palmtownチェックマークを付けて私の答えを受け入れることによってOPを閉じる:) – guradio

0

divul下にないので、あなたのコードは動作しませんのでdivulが、あなたuldivある兄弟両方の子ではありません。これは、これらの要素の両方が同じ親を持つことを意味します。最初にdivの親を見つけて、今度はこの親の中にulを見つけてください。以下のサンプル

$(oElement).closest('div').parent().find("ul li")[0]

+0

これを使用したli要素を見つける.prev()を使用してULを取得し.parent()を使用してアンカーの親に取得する必要がありますdivの親の中に他の 'UL'がある場合には、その場合にはulを指定する必要があります – guradio