我正在尝试在最近的/父级ul中获取特定的li元素,但是,我似乎无法使其工作。仅当div在li元素内时才有效。
<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]);
}
答案 0 :(得分:1)
$('#a_test').click(function() {
var text = $(this).parent().prev('ul').find('li:nth-child(1)').text()
alert(text)
})
&#13;
<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>
&#13;
您需要使用.parent()
转到锚点的父级,然后使用.prev()
获取ul,然后使用.find()
找到li元素
答案 1 :(得分:0)
您的代码无效,因为div
不在ul
下,因此div
不是ul
的孩子,而是 ul
div
1}}和div
是兄弟姐妹。这意味着这两个元素都有相同的父元素。首先找到ul
的父级,然后在此父级中找到$(oElement).closest('div').parent().find("ul li")[0]
。以下是样本
{{1}}