jquery选择器

简介

jQuery是js的一个轻量级框架,兼容了各大浏览器,提供了dom、events、ajax的简易操作,jQuery的插件非常丰富

jQuery与js一些区别

  1. js对象与jquery对象的转换
    约定:jquery对象的对象名为:变量名 js对象转成jquery对象:(js对象)
    jquery对象转成js对象:jquery对象[0]或jquery对象.get(0)
  2. 页面加载完成事件window.onload和(document).ready(function({}) a. window.onload方法会等待页面全部加载完毕之后执行代码,包括图片的加载、视频的加载 b.(document).ready(function({}))方法是等待页面标签元素加载完毕之后执行代码,不需要图片的完全加载只需要图片标签<image>加载完毕
    c. window.onload方法没有简写形式,(document).ready(function(){})可以简写为(function(){})
  3. 事件的区别
    js事件绑定:js对象.事件=function(){}
    jquery事件绑定:jquery对象.事件(function(){})

选择器

  1. 基本选择器
    通过id、class、标签名来选择dom对象
    a. 元素选择器
    语法:("元素名") 如:("span"),选择所有span标签的元素
    b. id选择器
    语法:("#id") 如:("#one"),选择id为one的元素
    c. 类选择器
    语法:(".class属性") 如:(".cssClass"),选择class="cssClass"属性的元素
    d. 通配符选择器
    语法:("*"),选择所有的元素 e. 并列选择器 语法:("id选择,元素选择,类选择")
    如:$("span,#one,.cssClass"),选择标签为span,id为one,类属性为cssClass的所有元素
  2. 属性选择器
    a. 元素包含属性值
    语法:("基本选择器[属性值]") 如:("div[name]"),选择div标签中包含name的元素
    b. 选择特定的属性值
    语法:("基本选择器[属性值=value]") 如:("div[name='gen']"),选择div标签中name属性为gen的元素
    c. 选择以某属性值开头的
    语法:("基本选择器[属性值^='...']") 如:("div[name^='gen']"),选择div标签中name属性以gen开头的元素
    d. 选择以某属性值结尾的
    语法:("基本选择器[属性值=value]")
    如:("div[name='gen']"),选择div标签中name属性以gen结尾的元素
    e. 选择某属性值包含某些字符
    语法:("基本选择器[属性值*=value]") 如:("div[name*='gen']"),选择div标签中name属性包含gen字符的元素
    注意:如需多个条件使用,可以并排表示
    如:$("div[id][name='gen'][class='myclass']")
  3. 层级选择器
    如果想通过 DOM 元素之间的层次关系来获取特定元素, 例如后代元素, 子元素, 相邻元素, 兄弟元素等, 则需要使用层次选择器.
    a. ancestor descendant
    用法: (”form input”) ; 返回值 集合元素 说明: 在给定的祖先元素下匹配所有后代元素.这个要下面讲的”parent > child”区分开. b. parent > child用法:(”form > input”) ; 返回值 集合元素
    说明: 在给定的父元素下匹配所有子元素.注意:要区分好后代元素与子元素
    c. prev + next
    用法: (”label + input”) ; 返回值 集合元素 说明: 匹配所有紧接在 prev 元素后的 next 元素 d. prev ~ siblings 用法:(”form ~ input”) ; 返回值 集合元素
    说明: 匹配 prev 元素之后的所有 siblings 元素.注意:是匹配之后的元素,不包含该元素在内,并且siblings匹配的是和prev同辈的元素,其后辈元素不被匹配.
    注意: (“prev ~ div”) 选择器只能选择 “# prev ” 元素后面的同辈元素; 而 jQuery 中的方法 siblings() 与前后位置无关, 只要是同辈节点就可以选取,siblings()函数也可以写选择器
<script type="text/javascript">

//        <input type="button" value="改变 <body> 内所有 <div> 的背景色为红色"  id="b1"/>
                $("#b1").click(function () {
                    $("body div").css("background","red");
                })
//            <input type="button" value=" 改变 <body> 内子 <div> 的背景色为 红色"  id="b2"/>
                $("#b2").click(function () {
                    $("body > div").css("background","red");
                })
//            <input type="button" value=" 改变 id 为 one 的下一个 <div> 的背景色为 红色"  id="b3"/>
                $("#b3").click(function () {
                    $("#one + div").css("background","red");
                })
//            <input type="button" value=" 改变 id 为 two 的元素后面的所有兄弟<div>的元素的背景色为 红色"  id="b4"/>
                $("#b4").click(function () {
                    $("#two ~ div").css("background","red");
                })
//            <input type="button" value=" 改变 id 为 two 的元素所有 <div> 兄弟元素的背景色为红色"  id="b5"/>
                $("#b5").click(function () {
                    $("#two").siblings("div").css("background","red");
                })
    </script>
  1. 过滤选择器
    过滤选择器主要是通过特定的过滤规则来筛选出所需的 DOM 元素, 该选择器都以 “:” 开头
    按照不同的过滤规则, 过滤选择器可以分为基本过滤, 内容过滤, 可见性过滤, 属性过滤, 子元素过滤和表单对象属性过滤选择器.
    (1)基础过滤选择器
    1、:first�用法: (”tr:first”) ; 返回值 单个元素的组成的集合 说明: 匹配找到的第一个元素 2、:last�用法:(”tr:last”) 返回值 集合元素
    说明: 匹配找到的最后一个元素.与 :first 相对应.
    3、:not(selector)�用法: (”input:not(:checked)”)返回值 集合元素 说明: 去除所有与给定选择器匹配的元素.有点类似于”非”,意思是没有被选中的input(当input的type=”checkbox”). 4、:even�用法:(”tr:even”) 返回值 集合元素
    说明: 匹配所有索引值为偶数的元素,从 0 开始计数.js的数组都是从0开始计数的.例如要选择table中的行,因为是从0开始计数,所以table中的第一个tr就为偶数0.
    5、: odd�用法: (”tr:odd”) 返回值 集合元素 说明: 匹配所有索引值为奇数的元素,和:even对应,从 0 开始计数. 6、:eq(index)�用法:(”tr:eq(0)”) 返回值 集合元素
    说明: 匹配一个给定索引值的元素.eq(0)就是获取第一个tr元素.括号里面的是索引值,不是元素排列数.
    7、:gt(index)�用法: (”tr:gt(0)”) 返回值 集合元素 说明: 匹配所有大于给定索引值的元素. 8、:lt(index)�用法:(”tr:lt(2)”) 返回值 集合元素
    说明: 匹配所有小于给定索引值的元素.
    9、:header(固定写法)�用法: $(”:header”).css(”background”, “#EEE”) 返回值 集合元素
    说明: 匹配如 h1, h2, h3之类的标题元素.这个是专门用来获取h1,h2这样的标题元素.
    10、:animated(固定写法) 返回值 集合元素
    说明: 匹配所有正在执行动画效果的元素
    <script type="text/javascript">

//        <input type="button" value=" 改变第一个 div 元素的背景色为 红色"  id="b1"/>
                $("#b1").click(function () {
                    $("div:first").css("background","red");
                })
//            <input type="button" value=" 改变最后一个 div 元素的背景色为 红色"  id="b2"/>
                $("#b2").click(function () {
                    $("div:last").css("background","red");
                })
//            <input type="button" value=" 改变class不为 one 的所有 div 元素的背景色为 红色"  id="b3"/>
                $("#b3").click(function () {
                    $("div:not(.one)").css("background","red");
                })
//            <input type="button" value=" 改变索引值为偶数的 div 元素的背景色为 红色"  id="b4"/>
                $("#b4").click(function () {
                    $("div:even").css("background","red");
                })
//            <input type="button" value=" 改变索引值为奇数的 div 元素的背景色为 红色"  id="b5"/>
                $("#b5").click(function () {
                    $("div:odd").css("background","red");
                })
//            <input type="button" value=" 改变索引值为大于 3 的 div 元素的背景色为 红色"  id="b6"/>
                $("#b6").click(function () {
                    $("div:gt(3)").css("background","red");
                })
//            <input type="button" value=" 改变索引值为等于 3 的 div 元素的背景色为 红色"     id="b7"/>
                $("#b7").click(function () {
                    $("div:eq(3)").css("background","red");
                })
//            <input type="button" value=" 改变索引值为小于 3 的 div 元素的背景色为 红色"  id="b8"/>
                $("#b8").click(function () {
                    $("div:lt(3)").css("background","red");
                })
//            <input type="button" value=" 改变所有的标题元素的背景色为 红色"  id="b9"/>
                $("#b9").click(function () {
                    $(":header").css("background","red");
                })
//            <input type="button" value=" 改变当前正在执行动画的所有元素的背景色为 红色"  id="b10"/>

                $("#b10").click(function () {
                    $(":animated").css("background","red");
                })
                //显示动画效果
                function mover() {
                    //回掉函数mover
                    $("#mover").slideToggle("slow",mover);
                }
                mover();
    </script>

(2) 内容过滤选择器
内容过滤选择器的过滤规则主要体现在它所包含的子元素和文本内容上
1、:contains(text)�用法: (”div:contains(’John’)”) 返回值 集合元素 说明: 匹配包含给定文本的元素.这个选择器比较有用,当我们要选择的不是dom标签元素时,它就派上了用场了,它的作用是查找被标签”围”起来的文本内容是否符合指定的内容的. 2、:empty�用法:(”td:empty”) 返回值 集合元素
说明: 匹配所有不包含子元素或者文本的空元素
3、:has(selector)
用法: (”div:has(p)”).addClass(”test”) 返回值 集合元素 说明: 匹配含有选择器所匹配的元素的元素.这个解释需要好好琢磨,但是一旦看了使用的例子就完全清楚了:给所有包含p元素的div标签加上class=”test”. 4、:parent�用法:(”td:parent”) 返回值 集合元素
说明: 匹配含有子元素或者文本的元素.注意:这里是”:parent”,可不是”.parent”哦!感觉与上面讲的”:empty”形成反义词.

<script type="text/javascript">

//        <input type="button" value=" 改变含有文本 ‘di’ 的 div 元素的背景色为 红色"  id="b1"/>
                $("#b1").click(function () {
                    $("div:contains('di')").css("background","red");
                })
//            <input type="button" value=" 改变不包含子元素(或者文本元素) 的 div 空元素的背景色为"  id="b2"/>
                $("#b2").click(function () {
                    $("div:empty").css("background","red");
                })
//            <input type="button" value=" 改变含有 class 为 mini 元素的 div 元素的背景色为 红色"  id="b3"/>
                $("#b3").click(function () {
                    $("div:has(.mini)").css("background","red");
                })
//            <input type="button" value=" 改变含有子元素(或者文本元素)的div元素的背景色为 红色"  id="b4"/>
                $("#b4").click(function () {
                    $("div:parent").css("background","red");
                })
//            <input type="button" value=" 改变不含有文本 di的 div 元素的背景色"  id="b5"/>
                $("#b5").click(function () {
                    $("div:not(:contains('di'))").css("background","red");
                })
    </script>

(3)可见过滤器
可见度过滤选择器是根据元素的可见和不可见状态来选择相应的元素
1、:hidden�用法: (”tr:hidden”) 返回值 集合元素 说明: 匹配所有的不可见元素,input 元素的 type 属性为 “hidden” 的话也会被匹配到.意思是css中display:none和input type=”hidden”的都会被匹配到.同样,要在脑海中彻底分清楚冒号”:”, 点号”.”和逗号”,”的区别. 2、:visible�用法:(”tr:visible”) 返回值 集合元素
说明: 匹配所有的可见元素.

<script type="text/javascript">

//        <input type="button" value="保存"  class="mini" name="ok"  class="mini" />
//            <input type="button" value=" 改变所有可见的div元素的背景色为 红色"  id="b1"/>
                $("#b1").click(function () {
                    $("div:visible").css("background","red");
                })
//            <input type="button" value=" 选取所有不可见的div元素, 利用 jQuery 中的 show() 方法将它们显示出来, 并设置其背景色为 红色"  id="b2"/>
                $("#b2").click(function () {
                    var hiddener= $("div:hidden");
                    hiddener.show();
                    hiddener.css("background","red");
                })
//            <input type="button" value=" 选取所有的文本隐藏域, 并打印它们的值"  id="b3"/>

//            <input type="button" value=" 选取所有的文本隐藏域, 并打印它们的值"  id="b4"/>
                //为啥匹配不到???????????????????????????????????
                $("#b4").click(function () {
                    var $inputs=$("input:hidden");
                    $inputs.each(function (index, docEle) {
                        alert(index);
                        alert(docEle.val());
                    });
                });
//            <input type="button" value=" 选取所有的文本隐藏域, 并打印它们的值"  id="b5"/>
                $("#b5").click(function () {
                    var $inputs=$("input[type=hidden]");
                    var input1=$("#input1");
                    alert(input1.val());
                    $inputs.each(function (index, docEle) {
                        alert(index);
                        alert(docEle.val());
                    });
                })
    </script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,076评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,658评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,732评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,493评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,591评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,598评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,601评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,348评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,797评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,114评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,278评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,953评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,585评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,202评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,180评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,139评论 2 352

推荐阅读更多精彩内容