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

    Jquery选择器

     
    1)选择器写法:$( )---> $('div') 字符串
     
    根据css样式来进行选取。css叫做添加样式,但是jQuery叫做添加行为。
    选择器
    CSS模式
    jQuery模式
    描述
    标签名
    div{}
    $('div')
    获取所有div标签的DOM元素
    ID
    #box{}
    $('#box')
    获取一个ID为box的DOM对象
    class(类名)
    .box{}
    $('.box')
    获取所有class名为box的DOM对象
     
    一个小的知识点:ID选择器的失明现象。
     
        ID在一个页面中只能出现一次,这是一个唯一标识符。在jQuery中就会存在问题。
     
        选择器选择出的对象,有一些属性和方法(length,.size())
     

    jQuery的兼容性

        css3的子选择器(不兼容IE6)
     
        但是到了jQuery中,jQuery会自行将不兼容IE的问题解决掉。
     
        jQuery的DOM对象和原生JavaScript的DOM对象之间的属性方法是不通用的,但是可以共同存在
     

    相互转换:

        $('DOM')[0].style.color=red;
        $('DOM').get(0).style.color=red;
        jQuery的DOM元素转换原生JavaScript的DOM元素
           解析数组 通过get方法
        原生JavaScript的DOM元素转换jQuery的DOM元素
           使用jq的函数包裹原生DOM对象
     

    进阶选择器:

    选择器
    CSS模式
    jQuery模式
    群组选择器
    div,span,p{}
    $('div,span,p')
    后代选择器
    ul li a{}
    $('ul li a')
    通配选择器
    *{}
    $('*')
     

    通配选择器

    选择所有;对性能有极大的浪费所以不能在全局范围内使用,最好的方法就是在局部环境下使用;
     
    $('ul li a,ul li em,ul li strong');
     
    简化成通配选择器:
     
    $('ul li *')
     

    高级选择器:

     
    1)层次选择器
    选择器
    css模式
    jQuery模式
    描述
    后代选择器
    ul li a{}
    $('ul li a')
    获取追溯到的所有元素
    子选择器
    div>p{}
    $('div>p')
    只获取子类节点
    next选择器
    div+p{}
    $('div+p')
    只获取某节点后一个同级DOM元素
    nextAll选择器
    div~p{}
    $('div~p')
    获取某节点后所有同级DOM元素
     
     
    jQuery为后代选择器提供了一个方法find()这个find方法里面有一个参数,就是想要找到的后代(可以是标签,类名,ID)
     
        $('div p').css('color','red')  ==  $('div').find('p').css('color','red') 
     
    jQuery为子选择器提供了一个方法,children(),参数同上;
     
        $('div>p').css('color','red')  == $('div').children('p').css('color','red');
     
    jQuery提供了next(), nextAll( ) 选择器,参数同上:注意next()选择器,只选择后一个元素。
     
        $('div+p').css('color','red')  == $('div').next('p').css('color','red')
     
        $('div~p').css('color','red')  == $('div').nextAll('p').css('color','red')
     
    注意:children() , next() , nextAll() 这些方法如果不传递参数的话, 那么就默认传递一个通配符*,通常在使用这些选择器的时候,我们需要精准的选择元素,避免发生各种怪异结果。
     

    属性选择器:

    CSS模式
    jQuery模式
    描述
    input[name]
    $('input[name]')
    获取具有这个属性的DOM元素
    input[name=XXX]
    $('input[name=XXX]')
    获取具有属性且属性值为XXX的DOM元素
    input[value][name=XXX]
    $('input[value][name=XXX]')
    获取有value 属性且name为XXX的DOM元素
     
    ....
     

    过滤选择器:伪类选择器:

    过滤器名
    jQuery语法
    说明
    返回
    :first
    $('li:first')
    选取第一个元素
    单个元素
    :last
    $('li:last')
    选取最后一个元素
    单个元素
    :not(选择器)
    $('li:not(.red)')
    选取class不是red的元素
    一组元素
    :even
    $('li:even')
    选择偶数的所有元素
    一组元素
    :odd
    $('li:odd')
    选择所有奇数元素
    一组元素
    :eq
    $('li:eq(1)')
    选择对应下表的元素
    单个元素
     
     

    内容过滤器

    过滤器名
     jQuery语法
    说明
    返回
    :contains(text)
    $('li:contains(123456)')
    选择有123456文本的元素
    一组元素
    :empty
    $(li':empty')
    选取li中不包含子元素或空文本的元素
    一组元素
    :has(选择器)
    $('ul:has(.red)')
    选择子元素含有类red的ul
    一组元素
     
     
    jQuery为了优化:has选择器性能,提供了一个方法.has()
        
        $('ul:has(.red)')==$('ul').has('.red')
     
     

    可见性选择器

    过滤器名
    jQuery语法
    说明
    返回
    :hidden
    $(li:hidden)
    选取所有不可见元素
    集合元素
    :visible
    $('li:visible')
    选取所有可见元素
    集合元素
     
    注:是否可见的判定因素为display:block & display :none
     

    其他方法:

     
    jQuery在选择器和过滤器的基础上提供了一些常用的方法,方便我们开发时灵活使用。
    方法名
    jQuery语法
    说明
    返回
    is()
    li.is('.red')
    传递选择器、DOM、jquery对象
    true||false
    hasClass()
    $('li').hasClass('red')
    就是is('.'+class)
    true||false
     
    is()方法
     
        $('li').is('.red');
     
        $('li').hasClass('red');
     
     
    .end()终止当前选择器的遍历,回到上个选择条件;
     
  • 相关阅读:
    MFC中控制Tips的显示
    VC++6.0/MFC 自定义edit 限制输入内容 响应复制粘贴全选剪切的功能
    VC++6.0/MFC中如何限制Edit控件输入 例子,只能输入0和1
    Windows安装配置php+memcached的方法
    mrg_myIsam分表引擎用法
    用PHP做服务器接口客户端用http协议POST访问安全性一般怎么做
    PHP慢脚本日志和Mysql的慢查询日志(转)
    nginx 配置优化的几个参数
    static详解
    Redis命令总结
  • 原文地址:https://www.cnblogs.com/li923/p/11553707.html
Copyright © 2011-2022 走看看