理解简单的排序脚本,用于比较值
Understanding simple sorting script , that compares values
我正在寻找一个简单的jquery排序脚本,并在网上找到了这个:
$(function() {
$('ol').each(function() {
var matches = $('li', this).filter(function() { // Each item
var text = $(this).text();
return $('ul.three li').filter(function() { // Are there matches in .three?
return $(this).text() == text;
}).length > 0;
}).length;
$('li:last', this).text((matches * 10) + ' Points');
});
});
这里的小提琴
注意前两个表的值如何与第三个表的值进行比较。现在我的问题是关于matches
是如何增加的,我经历了整个脚本,但不太理解匹配如何分别为第一个和第二个表获得4和2的值(在各自的表中显示为40和20)。我理解filter
函数的用法,但不太理解匹配是如何得到它的值的,我知道length
属性涉及到,我看到它在返回语句的末尾,但仍然不太理解匹配是如何增加的?
$(function() {
$('ol').each(function() {
var matches = $('li', this).filter(function() { // Each item
这里,它将迭代当前正在迭代的ol
元素中包含的每个li
项
var text = $(this).text();
return $('ul.three li').filter(function() { // Are there matches in .three?
return $(this).text() == text;
}).length > 0;
在这里,它将在ul
中搜索three
类,如果有任何li
与正在迭代的li
具有相同的文本。filter
函数将返回与搜索匹配的每个元素,当然,如果所有文本都不同,它将返回一个元素或不返回。因此,当它检查length > 0
时,它所做的是检查是否至少有一个元素匹配(即:如果这个文本在.three
中)。如果它返回true,它就会对前一个过滤器进行计数。
}).length;
在这里,和以前一样,但是用了外部过滤器,来检查找到了多少。因此,对于第一个,值为4。
$('li:last', this).text((matches * 10) + ' Points');
});
});
相关文章:
- 用于比较 HTML 标记内的变量的正则表达式
- 用于在数组比较之后由于某种原因而爆发循环
- 用于比较日期字段的Javascript
- 用于电子邮件比较/验证的PHP代码
- jQuery 选择器,用于通过比较元素的两个数据属性来选择元素
- 为什么 (23 == 真) 假但是 (!!23 == 真)真的吗?毕竟有===用于精确比较
- Jquery 比较函数不适用于整数
- 我可以比较两个Perl哈希(键和值)提取差异并应用于JavaScript中的哈希吗?
- 用于比较值的开关大小写
- 一个函数,用于比较数组中是否存在重复的数字
- 为什么我的localStorage复选框/布尔值比较不适用于我的Google Chrome扩展
- Javascript比较不适用于2位整数
- javascript比较字符串(用于日期目的)
- 函数,用于比较DOM树中的两个节点文本
- 用于骨干比较器的最小javascript字符串值
- 在$filter应用于3位数的负数之后,小于比较不起作用
- 用于比较的Javascript日期格式转换
- JavaScript用于日期比较
- 当用于ajax调用webservice的数据类型为json "时,如何将成功函数的结果与字符串进行比较
- 理解简单的排序脚本,用于比较值