2016-05-14 83 views
1

我想獲得最接近/父母ul內的特定li元素,但是,我似乎無法得到它的工作。它只在div位於li元素內時纔有效。獲取外部父母UL使用jquery

<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>

您需要使用.parent()去錨的父母,然後使用.prev()然後找到使用.find()

+0

工作得像一個魅力! – palmtown

+0

@palmtown很高興它工作..快樂的編碼伴侶:) – guradio

+0

@palmtown關閉OP通過勾選勾號接受我的答案:) – guradio

0

您的代碼不工作,因爲div不是下ul所以div不是ul雙方你uldiv是兄弟一個孩子。這意味着這兩個元素都有相同的父項。因此,首先找到div的父項,然後在此父項中找到ul。下面是示例

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

+0

這個li元素獲得UL如果在div的父級中還有其他「UL」,則需要指定ul,即該情況 – guradio