簡體   English   中英

在jQuery過濾器箭頭內部使用此函數

[英]Using this inside jQuery filter arrow function

當有這樣的代碼時:

$elements.filter(() => {
    console.log(this); // will be the parent scope's "this"
});

您將無法獲取應過濾的元素。 因此,您將需要使用常規功能,例如:

$elements.filter(function(){
    console.log($(this)); // will be the element to filter
});

還有其他方法可以代替普通功能嗎? 我知道對於點擊事件,您可以使用event.currentTarget ,但是filter沒有事件參數。

雖然沒有獲得對預期this的引用,但是可以按以下順序使用匿名函數,索引和DOM節點提供的參數:

$elements.filter((index, node) => {
  console.log(node);
});

 let $elements = $('li'); $elements.filter((index, node) => { console.log(node); }); 
 li { width: 50%; border: 2px solid #000; } li.red { border-color: red; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <ul> <li class="red"></li> <li class="red"></li> <li class="red"></li> <li class="red"></li> <li></li> <li class="red"></li> <li class="red"></li> <li></li> <li class="red"></li> <li></li> <li class="red"></li> <li class="red"></li> <li class="red"></li> <li class="red"></li> <li></li> <li></li> <li class="red"></li> <li class="red"></li> <li class="red"></li> <li></li> <li></li> <li></li> </ul> 

JS小提琴演示 ;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM