zoukankan      html  css  js  c++  java
  • jQuery选择器

    二、jQuery选择器

    当html某个节点不存在时,用JavaScript去获取会报错,而用jQuery却不会报错;

    document.getElementById('ttt').style.color = "red"; 如果此时#ttt已被删除,程序会报错。

    必须if(document.getElementById('ttt')){document.getElementById('ttt').style.color = "red";}才不会报错。

    但是如果用$('#ttt').css('color','red');即使#ttt被删除,程序也不会报错;

    2.1、基本选择器

    $('#name01') 选择id为name01的元素 ,

    $('.name02') 选择类名为.name02的元素 ,

    $('div,p,span') 按照标签名选择元素选择 ,

    $('p.red')可以标签名与类名进行选择

    $(*) 用通配符选择所有元素 ,

    2.2、层次选择器

    $('div span') 可以结合后代选择器进行选择,选择div下所有的后代(不止是子代)span;注意单引号的位置

    $('div>span') 只选择div下所有的子代span;注意单引号的位置

    $('.one + .ttt'),选择.one后面的名为ttt元素的同级元素,也是集合;注意单引号的位置

    $('.xxx~siblings'),选择.xxx后的所有siblings元素;注意单引号的位置

    可以用prev()与next()方法来进行更方便的选择;

    $('.one').next('yyy')选择.one后的平级的

    示例:next能否选择不是紧临的平级元素:不能。
    • ttt
    • ttt
    • ttt $('.test_next .name02').next().css('color','red'); 起作用
    • ttt
    • ttt $('.test_next .name02').next('.name05').css('color','red');不起作用
    • ttt
    • ttt
    • ttt $('.test_next .name05').nextAll('li').css('color','green');

    2.3、过滤选择器

    2.3.1基本过滤选择器

    $('div:first'),选取所有div中的第一个div;

    • text1,$('.myLi:first').css('color','red');
    • text2
    • text3
    • text4
    • text5

    $('div:last'),选取所有div中的最后一个div;

    $('div:not(.name01)'),注意.name01并不用引号包围;

    • text text text
    • text text text
    • text text text
    • text text text
    • text text text,$('.not_test li:not(.name005)').css('color','blue');

    $('li:odd'),选择奇数序号的li元素,计数是从0开始的

    $('li:even'),选择偶数序号的li元素,计数是从0开始的

    $('li:gt(2)'),选择索引大于2的元素,不包含索引是2的元素

    $('li:lt(5)'),选择索引小于5的元素,不包含索引是5的元素

    $(':header'),选取所有的标题,h1-h6

    $('div:animated'),选择正在运行动画的div

    2.3.2内容过滤选择器

    $('div:contain("我")'),选取含有文本“我”的div

    $('div:empty'),选择没有子元素且没有文本的div,文本也算作是元素

    $('div:has('p')'),选取含有p子元素的div元素

    • tttt$('.test_has:has(.in_has) ').css('color','red');
    • ttt
    • ttt
    • ttt
    • ttt

    $('div:parent'),选取含有子元素的div,文本也算作是元素,所以只包含文本也是可以被选中的

    2.3.3可见性过滤选择器

    $('div:visible'),选择所有可见的div

    $(':hidden'),选取所有不可见元素,其中包括input应用了type="hidden",应用了display:none的元素,以及应用了visiblity: hidden的元素;

    2.3.4属性过滤选择器

    $('div[id]'),$('p[class]'),选择含有id属性的div,选择含有class属性的div,注意[]内部一个引号也没有

    $('div[title=ttt]'),选取含有title属性且值为ttt的div,注意[]内部一个引号也没有

    $('div[title!=ttt]'),选取title值不等于ttt的div,不含title的div也会被选中,注意[]内部一个引号也没有

    $('div[title^=ttt]'),选取含有title属性且title属性值以ttt开始的div,注意[]内部一个引号也没有

    $('div[title$=ttt]'),选取含有title属性且title属性值以ttt结束的div,注意[]内部一个引号也没有

    $('div[title*=ttt]',选取含有title属性且title属性值含有ttt的div),注意[]内部一个引号也没有

    $('div[attr01][attr02][attr03][attr04]'),用多个属性缩小div可选择的范围,因为多个属性是且的关系

    2.3.5子元素过滤选择器

    $('div ul li span:nth-child(index/even/odd/equation)'),选取每个父元素(li)的第index个元素/偶数元素/奇数元素(span)。这样选出来的是一个集合(每个);要注意:nth-child(index)是从1开始计数的

    • text text text text text text text text text $('.nth_test li span:nth-child(2)').css('color','red'); 每个li下的第二个span,li是span的父元素
    • text text text text text text text text text
    • text text text text text text text text text
    • text text text text text text text text text

    $('div ul:first-child'),选取每个父元素(div)下的第一个元素(第一个ul);

    $('div ul:last-child'),选取每个父元素(div)下的最后一个元素(最后一个ul);

    $('ul li:only-child'),如果ul只有一个子元素是li,那么将会被匹配

    :nth-child详细例举:

    :nth-child(even);选取每个父元素下索引值是偶数的元素

    :nth-child(odd);选取每个父元素下索引值是奇数的元素

    :nth-child(2);选取每个父元素下索引值是2的元素

    :nth-child(3n);选取每个父元素下索引值是3n的元素,n从0开始,0,3,6,9...,:nth的计数是从1开始的

    :nth-child(3n+1);选取每个父元素下索引值是(3n+1)的元素,n从0开始,1,4,7,10...,nth的计数是从1开始的

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 $('.nth_test_2 span:nth-child(3n)').css('color','red'); $('.nth_test_2 span:nth-child(3n+1)').css('color','green');

    2.3.6表单对象属性过滤选择器

    $('#form01:enabled'),选取id是form01的表单内的所有的可用元素; $('#form01:disabled'),选取id是form01的表单内的所有的不可用元素; $('input:checked'),选取所有的(单选框、复选框被选中的)被选中的input元素; $('select:selected'),选取所有被选中的选元素;

    2.4表单选择器

    $(':input'),选中所有的input,select,textarea,button标签元素

    $(':text'),选取所有的单行文本,

    $(':password'),选取所有的密码框,

    $(':radio'),选取所有的单选框,

    $(':checkbox'),选取所有的复选框,

    $(':submit'),选取所有的提交按钮,

    $(':image'),选取所有的图像按钮,

    $(':reset'),选取所有的重置按钮,

    $(':button'),选取所有的按钮,

    $(':file'),选取所有的上传域,

    $(':hidden'),选取所有的不可见元素,

    2.5特殊符号注意事项

    要注意空格,$('.name01 :hidden')表示的是class为name01内的隐藏元素,而$('name01:hidden')表示的是隐藏的类名为class的元素

    2.6小知识积累

    if (('.name01').is(':visible')){执行代码};判断.name01可见时,要执行的代码

    2.6选择器中的注意对象

    2.6.1当选择器中含有特殊符号时

    当选择器中含有'.'、'#'、'('、'['符号时,要用转义字符'\'将其转义,例如 $('#b#f')是不正确的,转义成$('#db\#f'),$('#df[1]')不正确,转义成$('#df\[1\]')

    2.6.2选择器中含有空格

    $('.box :hidden')选中的是类名为box的盒子下的隐藏元素,而$('.box:hidden')选中的是类名为box的隐藏元素

  • 相关阅读:
    WordCount项目基本功能
    让自己的头脑极度开放
    Docker安装Mysql5.7
    MySQL中的函数索引(Generated Column)及一次SQL优化
    关于老系统的重构和优化选择
    JIRA笔记(一):安装部署JIRA
    Jenkins 配置GitLab插件和Git插件
    Loading descriptor for XXX.'has encountered a problem' A internal error occured during:"Loading ....."
    Newton插值的C++实现
    Lagrange插值C++程序
  • 原文地址:https://www.cnblogs.com/darkterror/p/4997125.html
Copyright © 2011-2022 走看看