[英]Filtering an element using jQuery
我有以下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>
單擊圖像(check.svg | modify.svg | delete.png)時,我想獲取上面列表的最后一個span元素。
不幸的是,使用以下代碼,我得到了未定義:
console.log($(this).closest('li').filter('.dutyText').html());
我的問題是:
如何使用jQuery獲取最后一個元素?
無論如何使用過濾功能,如果不是為什么?
您可以使用
filter()
如下。 但是,在這種情況下,您不需要過濾器。
$(this).closest('li').children().filter('.dummyText')
為什么我得到不確定?
$(this).closest('li').filter('.dutyText')
將搜索最近的祖先<li>
,並嘗試從中獲取具有dummyText
類的li
。 由於最接近的li
沒有類dummyText
,因此選擇器不會選擇任何元素,因此在空對象上調用html()
返回undefined
。
假設只有一個元素具有類dummyText
由於元素是img
的兄弟,你可以使用siblings()
。
$(this).siblings('.dutyText')
您還可以使用父子層次結構
$(this).closest('li').find('.dutyText')
具有dummyText
類的多個元素
1:當你想要集合中的最后一個元素時,使用.last()
。
2: filter()
用於過濾JQuery元素的集合。 在您的情況下,您想要選擇一個更深的深度(兒童)。 所以你需要做find()
。
3:你得到了未定義,因為你試圖從類.dutyText
的li
獲取HTML。 它並不存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.