javascript - 一段JS代码
大家讲道理
大家讲道理 2017-04-11 12:14:36
[JavaScript讨论组]
(function ($) {
  jQuery.expr[':'].Contains = function(a,i,m){
      return (a.textContent || a.innerText || "").toUpperCase().indexOf(m[3].toUpperCase())>=0;
  };
 
  function filterList(header, slist) {
    var form = $("
").attr({"class":"filterform form-search","action":"#"}), input = $("").attr({"class":"filterinput","placeholder":"Type to Filter","type":"text"}); $(form).append(input).appendTo(header); $(input) .change( function () { var filter = $(this).val(); if(filter) { $matches = $(slist).find('a:Contains(' + filter + ')').parent(); $('li', slist).not($matches).slideUp(); $matches.slideDown(); } else { $(slist).find("li").slideDown(); } return false; }) .keyup( function () { $(this).change(); }); } $(function () { filterList($("#form"), $("#slist")); }); }(jQuery));

那位同学可以给解释下这段代码的具体作用,看不懂

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(1)
迷茫

通过输入一段文字来筛选对应的列表。

首先通过jQuery.expr自定义选择器:Contains,a就是当前元素,m[3]代表筛选条件。作用就是选出elem以及elem的后代节点包涵filter的。

然后添加input和form到,输入获取input的值,如果匹配list里面存在li,则存在的那一部分下拉出现

 $matches = $(slist).find('a:Contains(' + filter + ')').parent();
 $('li', slist).not($matches).slideUp();
 $matches.slideDown();

如果filter为空则全部出现

 $(slist).find("li").slideDown();
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号