jQuery 之 选择器总结

news/2024/7/11 1:43:33 标签: jquery, div, css, 浏览器, 文档, stylesheet
<div id="article_content" class="article_content clearfix"> <div id="content_views" class="htmledit_views">

jQuery的基本选择器:

1)有通过给定的id来选取一个jQuery对象----->$('#id')

2)有通过给定的类名来选取一个jQuery对象的集合--->$('.class')

3)有通过给定的元素来选取一个jQuery对象的集合--->$('element')

4)有通过通配符*号来选取该网页中的所有的jQuery对象的集合--->$('*')

5)有通过多个选择器匹配之后进行选择合并而得到jQuery对象的集合-->$('selector1,selector2..')  

实际开发中,基本选择器完成了绝大多数的工作.

jQuery层次选择器:

1)可以选取某一个元素的所有的后代元素,得到一个jQuery对象的集合--->$('prev descendant')

2)可以选取某一个元素的子辈的所有的元素,得到一个jQuery对象的集合-->$('prev>son')

3)可以选取某个元素节点之后的元素,得到一个jQuery对象的集合-->$('prev+next') 或者$('prev').next('  ')

4)可以选取某一个元素对象之后的所有的同胞元素-->$('prev~siblings)或者$('prev').nextAll('  ')

5)可以选取某一个元素对象的所有的同胞元素,不管是在前面的还是在后面的-->$('prev').siblings(' ')

jQuery的过滤选择器

jQuery的过滤选择器又分为多种,其中包含基本的过滤选择器,内容过滤浏览器,可见性过滤浏览器,属性过滤浏览器,子元素过滤浏览器,和表单对象属性浏览器(jQuery 之 选择器总结 下篇 附加表单选择器内容)

一.基本过滤选择器的内容

1)我们可以选取第一个元素----->:first------>$('div:first')

2)我们可以选取最后一个元素----->:last-------->$('div:last')

3)可以去除所有与给定选择器匹配的元素--->:not(selector)---->$('div:not(.class)')

4)可以选取所有下标为偶数的元素----->:even----->$('div:even')

5)可以选取所有小标为奇数的元素----->:odd------>$('div:odd')

6)可以选取索引下标等于给定的值的元素------>:eq(index)------>$('div:eq(10)')

7)可以选取索引下标小于给定值的元素--------------->:lt(index)---->$('div:lt(10)')

8)可以选取索引下标大于给定值的元素------------->:gt(index)----->$('div:gt(10)')

9)可以选择所有的标题的元素,比如说h1,h2,h3...等等------>:header------>$(':header')

10)可以选择当前正在活动的元素(执行动画的元素)----->:animated----->$('div:animated')

二.内容过滤选择器

1)可以选取含有文本为指定值的元素---->:contains(text)---------->$('div:contains(nihao)')

2)可以选取不包含子元素或者文本的空元素---->:empty-------->$('div:empty')

3)可以选取含有选择器所匹配的元素的元素----------------->:has(selector)----------->$('div:has(p)')

4)可以选择符合只有一个孩子(文本元素也算),就是有内容的元素--------->:parent--------->$('div:parent')

三.可见性过滤选择器

1)可以选取不可见的元素----------------->:hidden------------->$('div:hidden')

2)可以选取可见的元素------------------------->:visible------------>$('div:visible')

四.属性过滤选择器

1)可以选取拥有此属性的元素--------------->[attribute]------------>$('')

2)可以选择属性等于指定属性值的元素----------------->[attribute=value]------------>$('div[title=nihao]')

3)可以选择属性不等于指定值的元素---------------->[attribute!=value]------------->$('div[title!=nihao]')

4)可以选择属性值以指定值开始的元素---------------->[attribute^=value]--------->$('div[title^=ni]')

5)可以选择属性值以指定值结尾的元素----------------->[attribute$=value]---------------->$('div[title$=hao]')

6)可以选择属性值中含有指定值的元素--------------->[attribute*=value]---------------->$('div[title*=ih]')

7)可以使用属性选择器进行多次选择满足多个条件----->[selector][selector]------------->$('div[id][title*=ih]')

五.子元素过滤选择器

1)可以选取每个父元素下面第几个子元素,或者是奇偶元素---->:nth-child(index/even/odd)---->这个是从1开始计算的!

2)可以选取每一个父元素下面的第一个子元素------------>:first-child

3)可以选取每一个父元素的最后一个子元素----------->:last-child

4)如果每个元素是它父元素中唯一的子元素,那么会被匹配,否者都无--->:only-child

jQuery 之 选择器总结(下篇)

      CSS是一种比较出色的技术,上面有很多的定义规则与jQuery有异曲同工之妙,甚至怀疑jQuery就是仿照CSS的理念来设计的,有CSS开发基础的人可以非常容易的进入jQuery的领域进行开发,没有接触过CSS开发的人通过学习jQuery的学习也会学习到很多CSS的规则和设计,CSS有三种方式,分别是行间样式表,内部样式表,外部样式表,其中外部样式表的引入:<link rel=stylesheet href='.../..css' type='text/css'>这句话最好记住,省的以后开发的时候老是去查别的HTMl文件找到这句话了,能省一点时间算一点时间哦.其实主要记住css级联样式表是通过<link/>标签引入的就可以了.同CSS一样jQuery也可以得到所有的元素,只有得到文档的元素之后,才能为该元素增加行为属性,下面是CSS文档和jQuery的几个比较:

 

1)E{CSS规则} 使用文档元素作为选择符---------------->$('element')

2)#ID{CSS规则}以文档元素的唯一标示符ID作为选择符------------------------>$('#id')

3)E.className{CSS规则}以文档的class作为选择符--------------------------->$('Element.className')或者$('.className')

4)E F{CSS规则}元素E的任意的后代F----------------->$('F E')元素F的所有后代-->$('F>E')元素F的儿子元素E

5)*{CSS规则}以文档的所有元素作为选择符-------->$('*')选择文档中所有的jQuery元素

 

      可以看出jQuery完全继承了CSS的风格,使用jQuery的元素我们可以非常便捷和迅速的找出特定的jQuery元素,从而可以为这些元素添加行为.我们要区别jQuery对象和DOM对象,jQuery[0]---------->可以转换成DOM对象,这样是非常有用的一个做法,比如说,我们在进行条件判断的时候,DOM对象可以直接放到if()语句块中,但是jQuery永远是个对象,不可以自动转换成boolean函数的.

      比如if(jQuery对象){.....操作.....}就会报告错误的,所以要用jQuery检查某个元素是否存在或者进行流程的控制的时候,应该使用jQuery的长度或者将jQuery对象转换成DOM对象进行判断,正确的做法是if(jQuery[0]){......}或者if(jQuery.length>0){.....}.

      几个上篇中要注意到的问题:

1)$('prev~siblings')-------$('prev').nextAll('...')------$('prev').siblings()的区别

      sibling是同胞,兄弟姐妹的意思,就是指同一辈的元素,将一个DOM理解为一棵树,里面处于同一层的就是siblings了,其中$('prev~siblings')取出的是在'prev'元素之后的所有的siblings元素,在实际的开发中,经常使用$('prev').nextAll()方法来代替上面的方法.区别主要是在$('prev').siblings()方法取出的是所有的兄弟元素,而不论是位于该prev元素的前面还是后面,另外两个方法就是只取出位于该prev元素后面的元素.

2)在基本过滤选择器中:not(selector)

      要明白:not(selector)过滤器中,selector是一个过滤器,也就可以写成选择器的形式...举一个最简单的例子,就是$('div:not(:last)')就是要取出不是最后一个的所有的div元素.

3)在基本过滤选择器中:header

      这个方法的作用就是来选取所有的header元素,也就是常说的标题元素,比如说<h1><h2><h3>等等这种标题元素,它返回的是一个集合元素,就是该页面上所有的标题的集合.

4)在内容过滤选择器中要记住:has(selector)元素的作用

     这个地方就是选取含有选择器所匹配的元素的元素,返回的是一个集合元素,因为不仅仅只有一个元素符合咱们的过滤条件.括弧中的参数也是一个selector,也就是选择器的表达式的形式.

5)在内容过滤选择器中的:parent选择器

      我们可以叫这个选择器"父母选择器",这个是选取含有子元素或者是文本元素的元素,返回的也是一个集合元素,这里应该注意的是文本元素也算是元素的.

6)子元素过滤选择器中应该记住:only-child元素

      如果某个元素师他父元素中唯一的子元素,那么将会被匹配,如果父元素中含有其他的元素,该元素就不会被匹配,这个元素可以被我们称为"独生子女元素",如果该元素是"独生子女",那么该元素将会被匹配,如果该元素不是"独生子女"那么这个元素就不会被匹配.

PS:

1)在表单选择器中:input是选择所有的input的元素,不仅仅包含文本框,而是取出所有的<input><textarea><select>和<button>元素的内容的.
2)在写代码的时候$('')里面带有空格和不带空格是完全不同的,带有空格的时候,系统会认为使用的是后代选择器,如果不带空格的时候,就会认为使用的是过滤选择器.所以在开发中一定要注意使用空格和不使用空格之间的区别.

 

 

 

其他几个小问题总结:

1)$('ul li:gt(10):not(:last)')首先获得<ul>元素下面的索引值大于10的<li>元素的集合,然后去掉元素集合中的最后一个元素.

2)同CSS选择器一样,咱们jQuery选择器中也有类似于$('div.className')的写法,意思是说选择类名为className的div元素.

3)给超链接增加onclick()方法,而不希望锚链接将咱们转到另外一个页面的时候,我们就可以再click中加入return false来让浏览器认为没有用户没有单击该链接,从而阻止该链接的跳转.

4)show();显示隐藏的匹配元素

5)css(name,value);给元素设置样式

6)text(string);设置匹配元素的文本内容

7)filter(expr);筛选出与指定的表达式匹配的元素集合,其中expr可以是多个选择器的组合.

8)addClass('className')和removeClass('className')的功能正好相反,一个是为元素增加一个类,一个则是为元素删除指定的类.

9)jQuery.is(':visible')来判断该jQuery对象是否符合后面的selector的定义,可以用来判断流程.

10)jQuery.toggle(function1,function2)---------toggle()方法可以用来交替一组动作,toggle词的意思就是切换的意思.



 文章引自:http://blog.csdn.net/ziwen00/article/details/4543274


div> div> <div id="treeSkill">div>

http://www.niftyadmin.cn/n/1732122.html

相关文章

java建索引分页_Java集合按照索引分页,以及JS数组代码按照索引分页的源码

记得有一次写一个需求&#xff0c;一时脑热写了个按照索引分页&#xff0c;至于是为什么写&#xff0c;已经忘了首先是Java的import java.math.BigDecimal;import java.util.ArrayList;import java.util.List;public class IndexPage {/**** Description 索引分页* author 1162…

java循环转成json_java各种数据转换成json

主要实现把java对常用的一些数据转换成Json&#xff0c;以便前台的调用&#xff0c;具体的操作如下&#xff1a;public class ConvertJson {/*** 对象转换为Json* param obj* return*/public static String object2json(Object obj) {StringBuilder json new StringBuilder();…

java 数据库 xml_Java连接并操作Sedna XML数据库的方法

本文实例讲述了Java连接并操作Sedna XML数据库的方法。分享给大家供大家参考。具体分析如下&#xff1a;Sedna 是一个原生的XML数据库&#xff0c;提供了全功能的核心数据库服务&#xff0c;包括持久化存储、ACID事务、索引、安全、热备、UTF8等。实现了 W3C XQuery 规范&#…

java俄罗斯方块简易版_简易Java版俄罗斯方块源码解析

原标题&#xff1a;简易Java版俄罗斯方块源码解析学IT不但可以高薪就业&#xff0c;还可以助你顺利转型&#xff0c;而java更是潮流的程序语言&#xff0c;简易Java版俄罗斯方块源码解析&#xff0c;希望通过下面的讲解&#xff0c;可以让大家更好的理解简易Java版俄罗斯方块源…

php获取本地上传图片地址_PHP实现本地图片上传和验证功能

今天研究了一下PHP的FILES函数&#xff0c;使用PHP实现本地图片的上传&#xff0c;验证文件是否为图片&#xff0c;并将图片保存在指定目录下&#xff0c;实现游览图片的功能&#xff0c;感觉还是很好玩的&#xff0c;一共有两个PHP页面&#xff0c;一个作为前台的上传和图片展…

带后台管理的超酷jquery+ajax幻灯相册php源码,jQuery+php+ajax实现无刷新上传文件功能...

jQueryphpajax实现无刷新上传文件功能&#xff0c;还带有上传进度条动画效果&#xff0c;支持图片、视频等大文件上传。js代码&#xff1a;function filesize(ele) {var filesize (ele.files[0].size / 1024/1024).toFixed(2);$(#big).html(filesize"MB");$(#text).…

java复制文件改后缀,java 复制 删除 改文件 后缀名小程序

public class FindandCopy {//查找文件public static void findmethod(File file1,File file2,String findtype,String changetype) throws Exception{if(!file1.exists()){return ;}else if(file1.isFile()){//文件夹不存在就创建if(!file2.exists()){file2.mkdirs();}if(file…

php ffmpeg-php,php 安装ffmpeg-php

下载ffmepg源码包和ffmpeg-php包&#xff0c;如下&#xff1a;首先安装ffmepg#tar -jxvf ffmpeg-export-snapshot.tar.bz2#cd ffmpeg#./configure --prefix/usr/local/ffmpeg --disable-yasm --enable-shared#make && make install#echo "/usr/local/lib" &…