Javascript 使用jQuery筛选元素
我有以下li元素:Javascript 使用jQuery筛选元素,javascript,jquery,html,filter,traversal,Javascript,Jquery,Html,Filter,Traversal,我有以下li元素: <li> <span><img src="../media/check.svg" class="complete"></span> <span><img src="../media/modify.svg" class="modify"></span> <span><img src="../media/delete.png" class="delete"
<li>
<span><img src="../media/check.svg" class="complete"></span>
<span><img src="../media/modify.svg" class="modify"></span>
<span><img src="../media/delete.png" class="delete"></span>
<span class="dutyText">hello</span>
<li>
我的问题是:
$(this).closest('li')。过滤器('.dutyText')
将搜索最近的祖先
,并尝试从中获取具有dummyText
类的li
。由于最近的li
没有类dummyText
,选择器将不会选择任何元素,因此对空对象调用html()
将返回未定义的
dummyText
img
的同级元素,因此可以使用
$(this).closest('li').find('.dutyText')
dummyText
类的多个元素
$(this).closest('li').find('.dutyText:last')
1:当需要集合中的最后一个元素时,请使用
.last()
2:filter()
用于过滤JQuery元素的集合。在您的情况下,您希望选择一个更深的深度(子深度)。因此,您需要执行find()
3:由于试图使用类
.dutyText
从li
获取HTML,因此未定义。它并不存在。Welcome@lampropoi。如果你认为这是问题的答案,也是最好的答案,请接受答案。看见
$(this).siblings('.dutyText')
$(this).closest('li').find('.dutyText')
$(this).closest('li').find('.dutyText:last')
$(this).closest('li').find('.dutyText').last()