Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery筛选元素_Javascript_Jquery_Html_Filter_Traversal - Fatal编程技术网

Javascript 使用jQuery筛选元素

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元素:

<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>
我的问题是:

  • 如何使用jQuery获取最后一个元素
  • 是否仍然需要使用过滤功能?如果没有,原因是什么
  • 为什么我没有定义
  • 如何使用jQuery获取最后一个元素

    您可以在jQuery集合上使用选择器或方法

  • 是否仍然需要使用过滤功能?如果没有,原因是什么

    您可以按如下方式使用。然而,在这种情况下,您不需要过滤器

  • 为什么我没有定义

    $(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()