jquery选择器《-》

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

1.DOM筛选,遍历查找相关方法

2.选择器中特殊符号的处理

3.改写原生js例子


      a.表格隔行变色

      b.tab标签页


4.选择器的优化准则(初级)



筛选

eq()选择指定索引的元素

filter(表达式)筛选指定表达式的元素

first()选择第一个元素

last()选择最后一个元素

is()检测是否元素返回布尔值

has()保留包含特定后代的元素,去掉那些不含有指定后代的元素

not()从匹配的元素集合中移除指定的元素。

map()将一组元素转换成其他数组

slice()根据指定的下标范围,选取匹配的元素集合


<script>
// $('p:eq(0)').css('background','red');
// $('p').filter('#second').css('background','red');
// $('p').first().css('background','red');
// $('p').last().css('background','red');

/* $('p').click(function(){
if($(this).is('.first')){
$(this).css('background','red');
}
});*/

// $('p').not('#second').css('background','red');
// 
// $('p').slice(-2,-1).css('background','red');

</script>


<body>
 <form action="">
  <input type="text" value="111" />
  <input type="text" value="222" />
  <input type="text" value="333" />
 </form>
 <p></p>

 <script>
  var arr = $('input').map(function(){
   return $(this).val()
  }).get().join(',');

  alert(typeof arr);
  $('p').html(arr);
 </script>
</body>

遍历查找

a.children()选取子元素

b.parent()选取父元素

c.parents()选取祖先元素

d.parentsUntil()所有的父辈元素,直到遇到匹配的那个元素为止 1.6+  //与有参数的parents()等价

e.offsetParent()返回父元素中第一个其position设为relative或者absolute

的元素,仅对可见元素有效

f.next()选择后面紧临的兄弟元素

g.nextAll()查找当前元素之后所有的同辈元素

h.nextUntil()所有的同辈元素,直到遇到匹配的那个元素为止 1.6+

i.prev()前一个兄弟元素

j.prevAll()前面所有的兄弟元素

k.prevUntil()所有的兄弟元素,直到遇到匹配的那个元素为止 1.6+

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
 <title>demo3</title>
 <script src="jquery.js"></script>
</head>
<body>
 
 <div id="outer" style="position:relative">
  outer
  <div id="wrap" style="">
   wrap
   <div>111111111</div>
   <div>222222222</div>
   <p id="p1">我是<span>第1个P</span>标签</p>
   <p id="p2">我是第2个P标签</p>
   <p>我是第3个P标签</p>
   <div>我是div标签</div>
  </div>
 </div>
 <script>
 // $('#wrap').children('p').css('background','red');
 // $('#p1').parent().css('background','red');
 // $('#p1').parents('#wrap').css('background','red');
 // 
 //$('#p1').offsetParent().css('background','red');
 //$('#p1').next().css('background','red');
 //$('#p1').nextAll('p').css('background','red');
 //
 //$('#p2').prev().css('background','red');
 //$('#p2').prevAll('div').css('background','red');
 //
 //$('#p2').siblings('div').css('background','red');
 // 
 //$('span').parent().css('background','red').end().css('background','#abcdef');
 //$('span').css('background','#abcdef');
 //
 $('#p1').nextAll().addBack().css('background','red');
 </script>

</body>
</html>



l.sinlings()前后所有的兄弟元素

m.closest()从元素本身开始,在DOM 树上逐级向上级元素匹配,并返回最先匹配的祖先元素

n.contents()元素的子元素,包括文字和注释节点

o.end()终止在当前链的最新过滤操作,并返回匹配的元素的以前状态

p.andself()1.8版本中已废弃

q.addBack()添加堆栈中元素集合到当前集合,一个选择性的过滤选择器

r.each()遍历一个jQuery对象,为每个匹配元素执行一个函数

<script src="jquery.js"></script>
</head>
<body>
 <form action="">
  <input type="text" name="" id="" value="第1个input的值" />
  <input type="text" name="" id="" value="第2个input的值" />
  <input type="text" name="" id="" value="第3个input的值" />
  <input type="text" name="" id="" value="第4个input的值" />
 </form>
 <script>
  /*$('input').each(function(){
   alert($(this).val());
  });*/
 </script>


特殊符号的处理

     使用转义符

<body>
 <form action="">爱好:
  <input type="checkbox" name="gender[]" id="" value="看书" />
  <input type="checkbox" name="gender[]" id="" value="篮球" />
  <input type="checkbox" name="gender[]" id="" value="编程" />
  <input type="submit" value="提交" /><input type="reset" value="重写" />
 </form>

 <script>

 /* $('input[name=gender\\[\\]]').click(function(){
   alert($(this).val());
  });*/

 $('input[type=\'checkbox\']').click(function(){
   alert($(this).val());
  });
 </script>
</body>

改写实例


a.表格隔行变色

//js

<script>
  var oTable = document.getElementById('table');
  var aTr = oTable.getElementsByTagName('tr');
  //alert(aTr.length);
  
  for(var i=0;i<aTr.length;i++){
   
   if(i%2==1){
    aTr[i].style.background="yellow";
   }else{
    aTr[i].style.background="#abcdef";
   }
  }

 </script>

//jquery

<script>
  /*$('#table tr:even').css('background','#abcdef');
  $('#table tr:odd').css('background','yellow');*/

  $('#table tr').filter(':even').css('background','#abcdef').end().filter(':odd').css('background','yellow');
 </script>

b.tab标签页

//js

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
 <title>原生js的tab标签页</title>
 <style>
  *{
   padding: 0;
   margin: 0;
  }
  ul{
   list-style-type: none;
  }
  body{
   margin: 50px ;
  }
  #ul{
   height: 30px;
   margin-bottom: 10px;
  }
  #ul li{
   height: 30px;
   line-height: 30px;
   padding: 0 15px;
   border: 1px solid #abcdef;
   float: left;
   margin-right: 3px;
   cursor: pointer;
  }
  #ul li.current{
   background: #abcdef;
  }

  #content div{
   width: 300px;
   height: 200px;
   border: 1px solid #abcdef;
   display: none;
  }
  #content div.show{
   display: block;
  }
 </style>
</head>
<body>
 <ul id="ul">
  <li>php</li>
  <li>ruby</li>
  <li>python</li>
 </ul>
 <div id="content">
  <div>php。。。。。。介绍</div>
  <div>ruby。。。。。。介绍</div>
  <div>python。。。。。。介绍</div>
 </div>

 <script>
  var ul = document.getElementById('ul');
  var li = ul.getElementsByTagName('li');
  var content = document.getElementById('content');
  var div = content.getElementsByTagName('div');

  for (var i = 0; i < li.length; i++) {
   li[i].index = i;
   li[i].οnclick=function(){
    for (var i = 0; i < li.length; i++) {
     li[i].className='';
     div[i].style.display='none';
    };

    this.className='current';
    div[this.index].style.display='block';
   }
  };

 </script>

</body>
</html>


//jquery

<script>
  $('#ul li').click(function(){

   //1、点击li的时候要切换样式
   //$(this).addClass('current').siblings().removeClass('current');
   //2、根据li的索引值,来确定哪个div显示,其它div隐藏
   //$('#content>div').eq($(this).index()).show().siblings().hide();


   //$(this).addClass('current').siblings().removeClass('current').parent().next().children().eq($(this).index()).show().siblings().hide();

  });

   $(this).addClass('current').siblings().removeClass('current').parent().next().find('div').eq($(this).index()).show().siblings().hide();

  });
 </script>


jquery选择器的优化


1.优先使用id选择器

2.class选择器前添加标签名

3.采用find(),而不使用上下文查找

4.强大的链式操作比缓存更快

5.从左至右的模型1.3+版本更新

转载于:https://my.oschina.net/u/1455528/blog/219791

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

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

相关文章

一文带你轻松搞懂事务隔离级别(图文详解)

本文由 SnailClimb 和读者 BugSpeak 共同完成。事务隔离级别(图文详解)什么是事务?事务是逻辑上的一组操作&#xff0c;要么都执行&#xff0c;要么都不执行。事务最经典也经常被拿出来说例子就是转账了。假如小明要给小红转账1000元&#xff0c;这个转账会涉及到两个关键操作…

Yolo opencv刻度尺识别 刻度读数识别 水尺识别 水位识别源码

刻度识别项目 简介实现效果实现流程实现原理 刻度尺的标定 指针位置标定读数位置标定刻度线标定数字检测数字分割数字识别web部署附录简介 好久不见了&#xff0c;我看了一下我最近的博客到现在已经3个月时间没更新了。这是因为我最近都在忙毕业设计&#xff0c;所以一直没有时…

Python检查特定值是否包含在列表中

python 检查特定值是否包含在列表中 # -*- coding: utf-8 -*-listA ["23", "45", "78", "92"] strB "45" strC "12"if __name__ __main__:if strB in listA:print(%s is on the list % strB)if strC not in …

【数据结构与算法】通俗易懂说链表

一&#xff1a;概述链表&#xff08;Linked list&#xff09;由一些节点组成&#xff0c;物理存储非连续的线性表。其中每个节点都会存储下个节点的指针&#xff0c;由于实际存储空间不连续&#xff0c;对链表插入节点&#xff0c;删除节点可以达到O(1)的复杂度&#xff0c;但是…

Yolov5实现道路裂缝检测

Yolov5实现道路裂缝检测 GitHub参考代码链接 我修改后的代码百度网盘链接 密码&#xff1a;2mzl 数据集链接 密码&#xff1a;06dj 基于Pytorch的Yolov5道路裂缝检测程序运行说明。大家可以结合我的说明和原文说明使用&#xff0c;有问题欢迎询问。 文章目录 Yolov5实现…

五、QPushButton按钮和QLineEdit控件操作

在第四节基础上,下面来进行QPushButton按钮和QLineEdit控件操作。 1.在主界面添加三个QLineEdit编辑框(其控件对象依次为lineEditNum1、lineEditNum2、lineEditSum)存放整数和一个按钮(其控件对象btnCalculate及5个QLable,进行2个数和的计算。 2.为按钮添加信号槽函数 单…

JVM史上最佳入门指南

提到Java虚拟机&#xff08;JVM&#xff09;&#xff0c;可能大部分人的第一印象是“难”&#xff0c;但当让我们真正走入“JVM世界”的时候&#xff0c;会发现其实问题并不像我们想象中的那么复杂。唯一真正令我们恐惧的&#xff0c;其实是恐惧本身。而作为整个JVM系列的首篇&…

Docker Registry 删除镜像并清理

目录 修改Docker Registry配置使用Registry V2 RestfulAPI 删除镜像Docker Registry GC回收空间使用UI管理Docker Registry 修改Docker Registry配置 配置开启删除功能:config.yml version: 0.1 log:fields:service: registry storage:delete:enabled: truecache:blobdescri…

1-3.Win10系统利用Pycharm社区版安装Django搭建一个简单Python Web项目的步骤之三

在1-1.Win10系统利用Pycharm社区版安装Django搭建一个简单Python Web项目的步骤之一 基础上进行如下操作&#xff1a; 所有路由不能全部都在myDjango下的urls.py路由文件中&#xff0c;一个app创建一个路由分发文件urls.py&#xff0c; 在myDjango下的urls.py路由文件中只对每…

阿里《Java手册》做一个有技术情怀的人

导读最近重温了阿里的《码出高效Java开发手册》&#xff0c;感觉最后一页“聊聊成长”这一小块的内容写的很棒&#xff0c;特意把它复制出来&#xff0c;送给每一个技术人&#xff0c;愿你做一个有技术情怀的人。正文成长并没有直线式的捷径&#xff0c;“不走弯路就是捷径”这…

安卓应用在各大应用市场上架方法整理

安卓应用在各大应用市场上架方法整理 正在上传…重新上传取消​ ASO优化师-酱紫 酱紫ASO、ASA推广运营研究 ​关注她 1 人赞同了该文章 想要把APP上架到应用市场都要先注册开发者账号才可以。这里的方法包括注册帐号和后期上架及一些需要注意的问题。注意&#xff1a;首次…

Linux Shell编程之脚本执行方式

1.新建bash脚本文件 打开命令终端 touch hello.sh vim hello.sh2.编辑bash文件 #!/bin/bash # this is a test programerecho "hello word"3.脚本执行 赋予执行权限&#xff0c;直接运行 chmod 755 hello.sh ./hello.sh输出结果&#xff1a;

经典面试题|讲一讲JVM的组成

JVM&#xff08;Java 虚拟机&#xff09;算是面试必问的问题的了&#xff0c;而但凡问 JVM 一定会问的第一个问题就是&#xff1a;讲一讲 JVM 的组成&#xff1f;那本文就注重讲一下 JVM 的组成。 首先来说 JVM 的组成分为&#xff0c;整体组成部分和运行时数据区组成部分&…

ST-GCN训练自建数据集

参考了许多博文&#xff0c;慢慢地也就把st-gcn跑出来了&#xff0c;参考的文章一会附在文章里面&#xff0c;实测有用。 1.安装st-gcn 复现STGCN CPU版 &#xff08;ubuntu16.04pytorch0.4.0openposecaffe&#xff09;_Significance的博客-程序员秘密​​​​​​复现旧版STG…

[翻译] Haneke(处理图片缓存问题)

Haneke https://github.com/hpique/Haneke A lightweight zero-config image cache for iOS. 轻量级0配置图片缓存。 Haneke resizes images and caches the result on memory and disk. Everything is done in background, allowing for fast, responsive scrolling. Asking H…

面试题:为什么Java中的字符串对象是不可变的

阅读本文大概需要 4分钟。所谓不可变对象&#xff0c;是指一个对象在创建后&#xff0c;它的内部状态不会被改变的对象。这意味着当我们将一个不可变对象的引用赋值给某个变量后&#xff0c;我们就不能改变该对象的内部状态。 James Gosling也说过——Java开发者应该尽量使用不…

复现STGCN CPU版 (ubuntu16.04+pytorch0.4.0+openpose+caffe)

前提&#xff1a;ubuntu下将python3.5.2设为默认&#xff08;百度&#xff09; 一.下载stgcn &#xff08;gitbub上fork后导入到gitee快些&#xff09;: st-gcn: Spatial Temporal Graph Convolutional Networks (ST-GCN) for Skeleton-Based Action Recognition in PyTorch…

Linux Shell编程之输入输出重定向

一、.输出重定向&#xff1a; 1.以覆盖方式把正确输入和错误输入都保存在同一个文件中 命令 &> 文件 2.以追加方式把正确输入和错误输入都保存在同一个文件中 命令 &>> 文件 3.以追加方式把正确输入保存在文件1中&#xff0c;把错误输入保存在文件2中 命令 …

不止JDK7的HashMap,JDK8的ConcurrentHashMap也会造成CPU 100%

大家可能都听过JDK7中的HashMap在多线程环境下可能造成CPU 100%的现象&#xff0c;这个由于在扩容的时候put时产生了死链&#xff0c;由此会在get时造成了CPU 100%。这个问题在JDK8中的HashMap获得了解决。其实JDK7中的HashMap在多线程环境下不止只有CPU 100%这一共怪异现象&am…

关于发布DIPS的MVC项目的IIS 7.0环境配置的方法

本人技术笨拙&#xff0c;今天在发布DIPS的MVC4.0项目&#xff0c;并部署到IIS上&#xff0c;遇到各种问题。在查询相关资料后&#xff0c;最终得以解决&#xff0c;所以想把这个过程记录下来。 注&#xff1a;DIPS为一种非关系型数据库 首先&#xff0c;需要安装和注册DIPS。注…