jQuery高级选择符与遍历

news/2024/11/17 3:01:10/文章来源:https://www.cnblogs.com/njhwy/p/18410368
1.HTML代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="jquery-3.4.1.js"></script>
    <style>
        a{
            text-decoration: none;
        }
        .selected{
            background-color: red;
        }
        .alt{
            background-color: antiquewhite;
            color:brown;
        }
    </style>
</head>
<body>
    <script>
        (function($){
                $.extend($.expr[":"],{
                    //element:当前考虑的DOM元素。
                    //index:DOM元素在结果集中的索引
                    //matches:数组,包含用于解析这个选择符的正则表达式的解析结果
                    //         一般来说,matches[3]是这个数组中唯一有用的值
                    //          :group(b),则matches[3]包含的值就是b,也就是括号中的文本
                    //set:匹配当前元素的整个DOM元素集合
                    group:function(element,index,matches,set){
                        var num=parseInt(matches[3],10);
                        if(isNaN(num)){
                            return false;
                        }
                        return index % (num*2) <num;
                    }
                });
        })(jQuery);
        $(document).ready(function(){
            //使用缓存来改进性能
            var $news=$('#news');
            function stripe(){
                //通过连缀来改进性能
                // $('#news').find('tr.alt').removeClass('alt').find('tbody')
                $news.find('tr.alt').removeClass('alt');
                $news.find('tbody').each(function(){
                    //tbody下面可见的包含td的tr对象
                    $(this).children(':visible').has('td')
                    .filter(
                      //  ':group(3)'
          function(index){
                         return (index%4)<2;
                     }
                    ).addClass('alt');
                   
                });
            }
            stripe();
            //动态筛选表格内容
            $('#topics a').click(function(event){
                  event.preventDefault();
                  var topic=$(this).text();
                  $('#topics a.selected').removeClass('selected');
                  $(this).addClass('selected');
                  $('#news tr').show();
                  if(topic!='All'){
                    //#news tr找到表格中所有的行,
                    //:has()从当前被选中的元素中挑选出那些包含指定元素的元素
                    //:contains()只会匹配那些某个单元格包含指定文本的行
                    // $('#news tr:has(td):not(:contains("'+topic+'"))').hide();
                    $('#news').find('tr:has(td)').not(
                        //回调函数返回true,那么被检测的元素就会被排除到结果集之外
                        function(){
                            //检测每一行的子元素,查找第四个子元素,对他的文本进行简单的测试
                        return $(this).children(':nth-child(4)').text()==topic;
                    }).hide();
                  }
                  stripe();
            });
            //为表格添加条纹
            // $('#news').find('tr:nth-child(even)').addClass('alt');
            // $('#news tbody').each(function(){
            //     $(this).children().has('td').filter(function(index){
            //         return (index%4)<2;
            //     }).addClass('alt');
            // })
            //高级的表格条纹效果,如果按主题来筛选,就会出现奇怪的现象
        });
    </script>
    <div id="topics">
          Topics:
          <a href="topics/all.html" class="selected">All</a>
          <a href="topics/community.html" >Community</a>
          <a href="topics/confererces.html" >Conferences</a>
          <a href="topics/documentation.html" >Documentation</a>
    </div>
    <table id="news">
        <thead>
            <tr>
                <th>Date</th>
                <th>Headline</th>
                <th>Author</th>
                <th>Topic</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <th colspan="4">2011</th>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Releases</td>
            </tr>
            <tr>
                <td>Apr 14</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Conferences</td>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Releases</td>
            </tr>
            <tr>
                <td>Apr 14</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Conferences</td>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Community</td>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Community</td>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Documentation</td>
            </tr>
            <tr>
                <th colspan="4">2011</th>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Releases</td>
            </tr>
            <tr>
                <td>Apr 14</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Conferences</td>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Community</td>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Releases</td>
            </tr>
            <tr>
                <td>Apr 14</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Conferences</td>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Documentation</td>
            </tr>
            <tr>
                <th colspan="4">2011</th>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Releases</td>
            </tr>
            <tr>
                <td>Apr 14</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Conferences</td>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Community</td>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released Community</td>
                <td>John Resig</td>
                <td>Documentation</td>
            </tr>
           
        </tbody>
        <tbody>
            <tr>
                <th colspan="4">2012</th>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Releases</td>
            </tr>
            <tr id="release">
                <td>Apr 14</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Conferences</td>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Community</td>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Documentation</td>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Releases</td>
            </tr>
            <tr>
                <td>Apr 14</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Conferences</td>
            </tr>
            <tr>
                <th colspan="4">2012</th>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Releases</td>
            </tr>
            <tr>
                <td>Apr 14</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Conferences</td>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Community</td>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Documentation</td>
            </tr>
            <tr>
                <td>Apr 14</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Conferences</td>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Community</td>
            </tr>
        </tbody>
        <tbody>
            <tr>
                <th colspan="4">2013</th>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Community</td>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Releases</td>
            </tr>
            <tr>
                <td>Apr 14</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Conferences</td>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Community</td>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Releases</td>
            </tr>
            <tr>
                <td>Apr 14</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Conferences</td>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Community</td>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Documentation</td>
            </tr>
            <tr>
                <th colspan="4">2013</th>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Documentation</td>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Releases</td>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Documentation</td>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Community</td>
            </tr>
            <tr>
                <td>Apr 15</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Releases</td>
            </tr>
            <tr>
                <td>Apr 14</td>
                <td>jQuery 1.6 Beta 1 Released</td>
                <td>John Resig</td>
                <td>Conferences</td>
            </tr>
            </tbody>
    </table>
</body>
</html>
 
二、页面效果
页面一:

 

 

页面二:

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/796062.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp使用路由名称跳转

由于web端和app公用一套菜单,而两个项目的路径是不同的,为解决这个问题,封装了一套使用路由名称作为跳转路由的方法 1.在pages.json文件里pages对应的页面配置里添加 routeName 字段(自定义),我做的app里面的菜单是后台获取的,所以这里的value值对应的是后台返回的页面路…

MyBatis-Plus动态表名

MyBatis-Plus动态表名 一、早期方案 1.1 MyBatis-Plus版本 1、添加MyBatis-Plus依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version> </dependency&g…

PbootCMS附件上传失败报错UNKNOW: Code: 8192; Desc: stripos()

在PBootCMS中遇到附件上传失败的报错 UNKNOW: Code: 8192; Desc: stripos(): Non-string needles will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior,这通常是因为PHP版本升级后某些函数的行为发生了变化。具体来说…

Android Studio单独运行Java程序

见图:添加代码如下: <option name="delegatedBuild" value="false" />

西门子WinCC开发笔记(一):winCC西门子组态软件介绍、安装

前言WinCC,非常经典的组态软件,西门子触摸屏。  西门子PLC的软件还是弄得比较多,WinCC是西门子触摸屏的编程和仿真软件,配套西门子的触摸屏,可以组态编程、仿真然后下载到HMI人机触摸屏上,作为组态软件来说,是非常值得了解、熟悉和学习的。 相关博客《案例分享:Qt激光…

面试-JS Web API-事件绑定和事件代理

编写一个通用的事件监听函数 描述事件冒泡的流程 无线下拉的图片列表,如何监听每个图片的点击?---事件代理 用e.target获取触发元素 用matches判断是否是触发元素事件绑定 addEventListenerfunction bindEvent(elem, type, fn) {elem.addEventListener(type, fn) }const btn1…

用 Rust 实现敏感信息拦截插件,提升 AI 网关安全防护能力

本⽂对敏感信息拦截插件的使用方式和实现原理进行了简单介绍,它能够自动检测并处理请求和响应中的敏感词,有效防止敏感信息泄露。通过对不同数据范围的支持和灵活的配置选项,该插件能够适应各种应用场景,确保数据的安全性和合规性。希望对你有帮助!作者:刘毅杰,棱镜七彩…

Linux--软链接,硬链接

在 Linux 和类 Unix 系统中,软链接(符号链接)和硬链接是用于文件系统中引用文件的两种方式。它们各自有不同的特点和用途。 软链接(符号链接) 硬链接定义 软链接是一个指向另一个文件或目录的特殊文件,包含指向目标文件路径的文本信息 硬链接是指向文件系统中同一文件的…

ant design使用本地IconFont文件

先参考这个官网的示例 :官网示例:通过设置 createFromIconfontCN 方法参数对象中的 scriptUrl 字段, 可以使用 iconfont.cn 项目中的图标。在iconfont.cn网站使用symbol方式生成在线链接。 但官网的说明有个问题,就是全部使用的是网络引用,有时候我们需要的环境可能并不是…

容器云平台建设可行性分析报告

一、项目背景和原因1.1 什么是容器云1.2 容器和虚拟机的区别1.3 为什么要建设容器云1.4 我们的建设目标1.5 建设过程可能存在的风险二、容器云PaaS平台构建2.1 总体技术架构2.2 设计原则2.3 总计规划三、容器云平台关键技术选型3.1 容器核心技术3.2 容器编排技术3.3 容器网络技…

机器学习 - 课程笔记

线性回归 代价函数J,也被称为平方误差函数,用来描述假设函数值与真实值的误差大小。其中乘1/2是用于减少平均误差,并且后面求导会有一个2,可以消掉。线性回归的代价函数常用平方误差函数。假设函数的参数是x,代价函数的参数是θ。梯度下降法 要得到最小化代价函数的Θ0和Θ…

通过LiveGBS实现安防监控摄像头GB28181转成WebRTC流实现web浏览器网页无插件低延迟直播

@目录1、WebRTC超低延时直播2、WebRTC延时对比3、LiveGBS的低延时的WebRTC流4、分屏页面如何选择默认播放流5、无法播放Webrtc6、搭建GB28181视频直播平台 1、WebRTC超低延时直播 需要低延时的视频流监控播放,之前可以用rtmp的低延时播放(1秒左右),随着浏览器对rtmp的禁用,…