筛选(JQuery Selector)

JQuery是一个JavaScript库,它极大地简化了JavaScript编程。整个JQuery库的方法都在$这个工厂函数里,我们只需要使用$函数,而$函数会返回一个JQuery对象,使用它就可以调用JQuery提供的一整套更为简单的API来完成日常工作中复杂的对DOM元素的操作。

认识Jquery对象

$返回的是一个Jquery对象,而这个对象存储的就是由筛选器获取的Dom元素,通过类似于获取数组元素的方式可以从Jquery对象中存取这些Dom元素

$(document).ready(function () {
    var divList = $("#box"); //获取id为box的div元素,返回一个Jquery对象
    alert(divList[0].innerText); //该Jquery类似于数组,可通过索引存取Dom元素
});

迭代Jquery对象

迭代Jquery可以使用API的each方法,应避免使用for迭代器来迭代Jquery对象,因为Jquery并不是数组。在任何可迭代的Jquery方法中都有一个this的引用指向了Dom元素,通过this获取到Dom,通过$(this)则将Dom元素封装为Jquery对象。

$(document).ready(function () {
    var divList = $("#box");
    var text = divList[0].innerText;//获取索引0处的div元素,调用其dom属性innerText
    divList.each(function () {
        alert($(this).text()); //调用了Jquery的text方法
        alert(this.innerText); //调用了dom元素的innerText属性
    });
});
 

选择器(selector)

选择器用于获取一组Dom元素的Jquery表示,选择器只能选择Html元素,不会选择属性、文本。

基本选择器

selector:tag、id、class

通过tag、id、class获取元素,可以有多个tag,每个tag以逗号隔开,tag,tag。tag可以组合id或class,tag#id、tag.class,所以有:tag#id,tag,tag.class……

$('tag') //选择所有selector指定的那些
$('#id') //选择指定id的那些
$('.class') //选择指定class的那些
$('tag#id') //选择指定标签具有指定id的那些
$('tag,tag,tag.class') //选择多个指定标签和指定标签具有指定class的那些
$('*') //选择所有

示例:

<div id="box">box</div>
<div class="containner">containner</div>
<span>span</span>
$(document).ready(function () {
    alert($(".containner")[0].innerText);
    $("div.containner,span,div#box").each(function () {
        alert($(this).text());
    });
});

层次选择器

通过DOM树的层次关系来选择元素。+、~、空格可以组合tag,div+span、div~span、div span。

$('selector+') //选择它的第一个兄弟
$('selector~') //选择它的所有兄弟
$('selector *') //选择它的所有后代

示例

$(document).ready(function () {
    var elmList = $("#box+")[0]; //选择id为box的元素后的第一个兄弟元素
    var elmList=$("div+span+p");//选择所有div元素后的第一个兄弟span元素后的第一个兄弟p元素
});  

进一步选择器

指在选择的结果集合里进行进一步的选择,:号前的选择器被视为第一次选择的结果集,:号的选择器则从该结果集合中进行第二次选择。

1.层次选择器

$('selector:first') //只要第一个
$("selector:last") //只要最后一个
$('selector:parent') //只要作为父元素的那些

2.范围选择器

$('selector:has(selector)') //只要包含了在has列表中的那些,has中可以有多个所有指定的selector,以逗号隔开
$('selector:not(selector)') //只要不在not列表中的那些,not可以有多个所有指定的selector,以逗号隔开

3.状态选择器

$('selector:empty') //只要不包含任何子元素的那些
$("selector:animated") //只要正在执行动画的那些
$('contains:contains('text')') //只要其包含了contains所指定的文本,包括后代文本也算,text大小写敏感
$('selector:visible') //只要其可见性是显示状态的那些
$('selector:hidden') //只要其可见性是隐藏状态的那些

4.索引选择器

$('selector:eq(index)')  //只要指定的索引处的那些
$('selector:odd') //只要索引是奇数的那些
$('selector:even') //只要索引是偶数的那些
$('selector:gt(number)') //只要索引<number对的那些
$('selector:gt(number)') //只要索引<number对的那些

5.属性选择器

$('selector[attri]') //只要具有指定属性的那些
$('selector[attri!=attriValue]') //只要指定属性!=指定值的那些
$('selector[attri^=key]') //只要指定属性的值是以key开头的那些
$("selector[attri$=key]") //只要指定属性的值是以key结尾的那些
$('div[class*=key]')  //只要指定属性的值包含了text的那些

6.后代元素过滤

$('selector:first-child') //只要它是父元素的第一个子元素的那些
$('selector:last-child') //只要它是父元素的最后一个子元素的那些
$('selector:nth-child(number)') //只要那些是属于父元素中的第number个子元素的那些,number从1开始
$('selector:nth-child(even)')  //只要那些是属于父元素中的索引为偶数的子元素的那些
$('selector:nth-child(odd)') //只要那些是属于父元素中的索引为奇数的子元素的那些

表单过滤

表单元素状态选择器

$('selector:enabled') //只要未被禁用的那些
$('selector:disabled') //只要已被禁用的那些
$('selector:checked') //只要被cheked的那些
$('selector:selected') //只要被selected的那些

表单元数属性选择器

$('selector:radio') //只要单选框的那些
$('selector:file') //只要上传域的那些
$('selector:reset') //只要重置按钮的那些
$('selector:text') //只要单行文本框的那些
$('selector:image') //只要图像按钮的那些
$('selector:submit') //只要提交按钮的那些
$('selector:checkbox') //只要复选框的那些。
$('selector:hidden') //只要不可见的那些
$('selector:password') //只要密码文本框的那些
$('selector:input') //只要input、textarea、select、button的那些

方法选择

可以使用Jquery提供的函数对Jquery对象中的Dom元素进行进一步选择。

filter()

filter(selector | jqueryObj | domElm | fn)
//在Jquery对象上作进一步选择,返回一个已经进一步选择的结果集,一个Jquery对象
//fun:自定义的选择处理函数,迭代自动进行,每迭代一次自动调用函数进行选择判断

示例

$('div').filter('.box') //过滤出className为box的div元素
$('div').filter(":contains('佳能') , :contains('三星')") //过滤出包含了佳能或三星文本的div元素
$('div').filter(function () {
    return $(this).text() == 'a';//筛选出含有指定文字的div
});

is()

is(selector | jqueryObj | domElm | fn)
//在Jquery对象上作判断,返回一个布尔值,注意,filter函数返回的是Jquery对象
//fun:自定义的选择处理函数,迭代自动进行,每迭代一次自动调用函数进行判断      

  

Javascript - 学习总目录

Javascript - Jquery - 筛选的更多相关文章

  1. jQuery筛选器及对DOM修改(学习笔记)

    1.jQuery筛选器 注意:请先在管理Nuget程序包中查找jQuery包,并安装.也可以在jQuery官网下载. 实现: <!DOCTYPE html> <html xmlns= ...

  2. dom&JavaScript&Jquery

    目录 dom&JavaScript&Jquery 建节点 添加节点 删除节点: 替换节点: 属性节点 获取值操作 class的操作 指定CSS操作 操作节点 获取input用户输入 操 ...

  3. JavaScript jQuery 中定义数组与操作及jquery数组操作

    首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多 ...

  4. 在线运行Javascript,Jquery,HTML,CSS代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" http://www.w3.org/TR/xht ...

  5. javascript --- jQuery --- Deferred对象

    javascript --- jQuery --- Deferred对象 javascript的函数式编程是多么引人入胜,jQuery使代码尽可能的精简,intelligent! defer - 必应 ...

  6. javascript/jquery读取和修改HTTP headers

    javascript/jquery读取和修改HTTP headers jquery修改HTTP headers jQuery Ajax可以通过headers或beforeSend修改request的H ...

  7. 大量Javascript/JQuery学习教程电子书合集

    [推荐分享]大量Javascript/JQuery学习教程电子书合集,送给有需要的人   不收藏是你的错^_^. 经证实,均可免费下载. 资源名称 资源大小   15天学会jQuery(完整版).pd ...

  8. [推荐分享]大量Javascript/JQuery学习教程电子书合集,送给有需要的人

    不收藏是你的错^_^. 经证实,均可免费下载. 资源名称 资源大小   15天学会jQuery(完整版).pdf 274.79 KB   21天学通JavaScript(第2版)-顾宁燕扫描版.pdf ...

  9. 【推荐分享】大量JavaScript/jQuery电子书籍教程pdf合集下载

    不收藏是你的错^_^. 经证实,均可免费下载. 资源名称 资源大小   15天学会jQuery(完整版).pdf 274.79 KB   21天学通JavaScript(第2版)-顾宁燕扫描版.pdf ...

随机推荐

  1. 高级组件——文件选择器JFileChooser

    1.创建文件选择器 JFileChooser 2.设置选择模式 setFileSelectionMode(int mode) JFileChooser.FILES_ONLY 只能选择文件(默认) JF ...

  2. (数字三角形)POJ1163 The Triangle

    The Triangle Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 59698   Accepted: 35792 De ...

  3. day16-(listener&filter)

    回顾: ajax: 异步请求 原生的ajax(了解) 1.创建一个核心对象 XMLHttpRequest 2.编写回调函数 xmlhttp.onreadystatechange=function(){ ...

  4. bzoj2243 树链剖分

    https://www.lydsy.com/JudgeOnline/problem.php?id=2243 新学的树剖,在维护的时候线段树维护区间内颜色数量以及左右两端的颜色.统计的时候区间合并时判断 ...

  5. 获取日k数据

    http://web.ifzq.gtimg.cn/appstock/app/fqkline/get?_var=kline_dayqfq&param=sz002921,day,,,320,qfq ...

  6. str

    print('字符串操作') s='abc DEF hij' print('首字母大写') print(s.capitalize()) print('全大写') print(s.upper()) pr ...

  7. Java lombok插件介绍

    lombok是什么? lombok是一个插件,用途是给你类里面的字段,自动的加上属性,构造器,ToString方法,Equals方法等等 lombok怎么安装? 安装网上一搜一大把,这里有一个Idea ...

  8. 高性能的代理服务-Envoy

    Envoy最初建于Lyft,是一个高性能的代理服务,为服务网格提供了基础. 它与应用程序并行运行,通过以平台无关的方式提供通用功能来抽象网络. 当基础架构中的所有服务流量都通过Envoy网格时,通过一 ...

  9. IDEA导入JUnit4

    Step 1. IDEA最上面一栏的菜单栏中,选File->Project Structure(从上往下第11个),弹出窗口左边有一个列表,选Module. Step 2. 右侧有一个带3个标签 ...

  10. 使用 Quartz.NET 实现作业串行执行

    Ø  前言 前两天,在公司的一个项目中编写 Windows 服务时,需求是当A服务运行完后,B服务才能运行,B服务运行后,C服务才能运行.因为B服务的数据依赖于A服务生成的数据,而C服务的数据又依赖于 ...