使用jquery获取超级父UL

时间:2016-05-14 02:27:10

标签: javascript jquery html

我正在尝试在最近的/父级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]);

}

2 个答案:

答案 0 :(得分:1)

&#13;
&#13;
$('#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;
&#13;
&#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}}