选择器

作者: 梨啊梨 | 来源:发表于2017-10-03 16:57 被阅读0次

    jQuery id选择器:    

     类似于 getElementById

    $("#id") :id选择器:一个用来查找的ID,即元素的id属性

    ①、id是唯一的,每个id值在一个页面中只能使用一次。

    ②、如果多个元素分配了相同的id,将只匹配该id选择集合的第一个DOM元素。

    ③、超过一个元素的页面使用相同的id是无效的


    类选择器: $( ".class" )   

     类似于getElementsByClassName

    类选择器,相对id选择器来说,效率相对会低一点,但是优势就是可以多选。

    jQuery在实现上,对于类选择器,如果浏览器支持,jQuery使用JavaScript的原生getElementsByClassName()函数来实现的。


    元素选择器:

    $("ele") :根据给定(html)标记名称选择所有的元素

    等价于:js原生方法getElementsByTagName()函数支持


    通配符*全选择器

    $("*")选择所有的元素


    层级选择器

    //子选择器

    //$("div > p")选择所有div元素里面的子元素P

    //后代选择器

    //$("div  p") 选择所有div元素里面的p元素

    //相邻兄弟选择器

    //$("prev + div")选取prev后面的第一个的div兄弟节点

    //一般相邻选择器

    //$("prev ~ div")选取prev后面的所有的div兄弟节点

    $( "parent > child" )

    子选择器:选择所有指定“parent”元素中指定的"child"的直接子元素。

    $("ancestor descendant")

    后代选择器:选择给定的祖先元素的所有后代元素, 一个元素的后代可能是该元素的一个孩子,孙子,曾孙等

    $("prev + next")

    相邻兄弟选择器:选择所有紧接在“prev”元素后的“next”元素

    $("prev ~ siblings")

    一般兄弟选择器:匹配“prev”元素之后的所有 兄弟元素。具有相同的父元素,并匹配过滤“siblings”选择器

    http://www.imooc.com/code/8342

    基本筛选选择器

    http://www.imooc.com/code/8344

    内容筛选选择器

    $(".div:contains(':contains')"):查找所有class="div"中DOM元素中包含"contains"的元素节点(包含指定文本的意思)

    $(".div:has(span)"):查找所有class="div"中DOM元素中包含"span"的元素节点(包含指定元素的意思)

    $(".a:parent"):选择所有包含子元素或者文本的a元素

    $(".a:empty"):与parent相反,找到a元素下面的所有空节点(没有子元素)

    http://www.imooc.com/code/8345

    可见性筛选选择器

    我们有几种方式可以隐藏一个元素:

    CSS display的值是none。

    type="hidden"的表单元素。

    宽度和高度都显式设置为0。

    一个祖先元素是隐藏的,该元素是不会在页面上显示

    CSS visibility的值是hidden

    CSS opacity的指是0


    属性筛选选择器

    属性选择器让你可以基于属性来定位一个元素。可以只指定该元素的某个属性,这样所有使用该属性而不管它的值,这个元素都将被定位,也可以更加明确并定位在这些属性上使用特定值的元素

    举例

    属性筛选选择器:

    $('div[name=p1]'): //查找所有div中,属性name=p1的div元素

    $('div[p2]'): //查找所有div中,有属性p2的div元素

    $('div[name|="-"]')//查找所有div中,有属性name中的值只包含一个连字符“-”的div元素,或以连字符‘-’相连的前缀为字符“-”的div

    $('div[name~="a"]')    //查找所有div中,有属性name中的值包含一个连字符“空”和“a”的div元素,以空格风格的属性中有属性值a

    $('div[name^=imooc]') //查找所有div中,属性name的值是用imooc开头的

    $('div[name$=imooc]') //查找所有div中,属性name的值是用imooc结尾的

    $('div[name*="test"]')//查找所有div中,有属性name中的值包含一个test字符串的div元素

    $('div[testattr!="true"]')//查找所有div中,有属性testattr中的值没有包含"true"的div

    http://www.imooc.com/code/8347

    子元素筛选选择器

    子元素筛选选择器不常使用,其筛选规则比起其它的选择器稍微要复杂点

    1   :first只匹配一个单独的元素,但是:first-child选择器可以匹配多个:即为每个父级元素匹配第一个子元素。这相当于:nth-child(1)

    2   :last 只匹配一个单独的元素, :last-child 选择器可以匹配多个元素:即,为每个父级元素匹配最后一个子元素

    3   如果子元素只有一个的话,:first-child与:last-child是同一个

    4   :only-child匹配某个元素是父元素中唯一的子元素,就是说当前子元素是父元素中唯一的元素,则匹配

    5   jQuery实现:nth-child(n)是严格来自CSS规范,所以n值是“索引”,也就是说,从1开始计数,:nth-child(index)从1开始的,而eq(index)是从0开始的

    6   nth-child(n) 与 :nth-last-child(n) 的区别前者是从前往后计算,后者从后往前计算

    http://www.imooc.com/code/8348

    表单元素选择器

    除了input筛选选择器,几乎每个表单类别筛选器都对应一个input元素的type值。大部分表单类别筛选器可以使用属性筛选器替换。比如 $(':password') == $('[type=password]'

    http://www.imooc.com/code/8350

    表单对象属性筛选选择器

    除了表单元素选择器外,表单对象属性筛选选择器也是专门针对表单元素的选择器,可以附加在其他选择器的后面,主要功能是对所选择的表单元素进行筛选

    注意事项:

    选择器适用于复选框和单选框,对于下拉框元素, 使用 :selected 选择器

    http://www.imooc.com/code/8352

    特殊选择器this

    $(this)

    相关文章

      网友评论

          本文标题:选择器

          本文链接:https://www.haomeiwen.com/subject/urcaextx.html