dud*_*ude 2 javascript jquery ecmascript-6 arrow-functions
有这样的代码时:
$elements.filter(() => {
console.log(this); // will be the parent scope's "this"
});
Run Code Online (Sandbox Code Playgroud)
你无法获得应该过滤的元素.所以你需要使用一个普通的函数,比如:
$elements.filter(function(){
console.log($(this)); // will be the element to filter
});
Run Code Online (Sandbox Code Playgroud)
有没有其他方式而不是使用正常的功能?我知道你可以使用的点击事件event.currentTarget,但是没有事件参数filter.
虽然您没有获得对期望的引用this,但可以按顺序使用匿名函数,索引和DOM节点提供的参数:
$elements.filter((index, node) => {
console.log(node);
});
Run Code Online (Sandbox Code Playgroud)
let $elements = $('li');
$elements.filter((index, node) => {
console.log(node);
});Run Code Online (Sandbox Code Playgroud)
li {
width: 50%;
border: 2px solid #000;
}
li.red {
border-color: red;
}Run Code Online (Sandbox Code Playgroud)
<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>Run Code Online (Sandbox Code Playgroud)
JS小提琴演示 ;
| 归档时间: |
|
| 查看次数: |
934 次 |
| 最近记录: |