jquery find element考虑父级

时间:2015-05-16 10:45:12

标签: javascript jquery find

如何找到考虑父节点的元素?示例:

<ul class="level-3">
     <li class="item-1">1</li>
     <li class="item-2">2</li>
     <li class="item-3">3</li>
</ul>
var $ul = $('.ul');
console.log($ul.find('.item-1')) - // found - OK

如果找到

console.log($ul.find('.level-3')) - // not found - WHY ???

3 个答案:

答案 0 :(得分:0)

您可以使用soma类型的jQuery函数来执行此操作:

最近:找到anchestor元素与选择器匹配。

  

.closest()方法在进行DOM树

之前开始使用元素本身进行搜索

父母:遍历DOM树,查找与选择器匹配的所有父级。

:检查元素是否与选择器匹配。

$ul.closest(".level-3")

答案 1 :(得分:0)

假设UL为元素

您无法找到它,因为level-3不是ul的孩子。

根据您当前的HTML,您需要使用.filter()

  

将匹配元素集合减少到与选择器匹配的元素或通过函数测试。

代码

var $ul = $('ul'); 
$ul.filter('.level-3')

答案 2 :(得分:0)

在你的观点中,你没有&#34; .level-3&#34;类。简单地说,你可以使用jquery来做到这一点。

&#13;
&#13;
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $("#btn1").click(function(){
        alert($("ul").find('.item-3').text());
    });
});
</script>
</head>
<body>
<ul class="level-3">
     <li class="item-1">1</li>
     <li class="item-2">2</li>
     <li class="item-3">3</li>
</ul>

<button id="btn1">Show level 3 Text</button>

</body>
</html>
&#13;
&#13;
&#13;