jQuery 选择器(一)

jQuery 选择器

jQuery 选择器允许对 HTML 元素组成单个元素进行操作。

jQuery 选择器是 jQuery 的根基, 在 jQuery 中, 对事件处理, 遍历 DOM 和 Ajax 操作都依赖于选择器

jQuery 中的选择器用于定位页面元素,源于 CSS 选择器,但比 CSS 选择求更强大。

jQuery 中的选择器使用工厂函数作为容器,语法结构如下:

var element = $(selector);
  • selector:作为参数,表示 jQuery 的选择器。
  • 返回值:jQuery 的工厂函数会返回一个 jQuery 对象。
$('#one').css("background","#bfa");

选择器的分类

jQuery 的选择器共 10 种,其中有一种是第三版新增的,按照分类方法的不同类别不同。

jQuery 选择器的分类:

  • 基本选择器
    • ID 选择器
    • 元素选择器
    • 类选择器
    • 通配符选择器
    • 组合选择器
  • 层级选择器
    • 后代选择器
    • 子选择器
    • 相邻兄弟选择器
    • 普通兄弟选择器
  • 基本过滤选择器
    • :frist过滤选择器
    • :last过滤选择器
    • :even过滤选择器
    • :odd过滤选择器
    • :eq()过滤选择器
    • :gt()过滤选择器
    • :lt()过滤选择器
    • :not()过滤选择器
    • :header过滤选择器
    • animated过滤选择器
    • :not(selector)过滤选择器
  • 内容过滤选择器
    • :contains() 过滤选择器
    • :empty 过滤选择器
    • parent 过滤选择器
    • has() 过滤选择器
  • 可见性过滤选择器
    • :hidden 过滤选择器
    • :visible 过滤选择器
  • 属性过滤选择器
    • [attr] 过滤选择器
    • [attr=value] 过滤选择器
    • [attr!=value] 过滤选择器
    • [attr^=value] 过滤选择器
    • [attr$=value] 过滤选择器
    • [attr*=value] 过滤选择器
    • 组合属性过滤选择器
  • 子元素过滤选择器
    • :nth-child 过滤选择器
    • :first-child() 过滤选择器
    • last-child 过滤选择器
    • only-child 过滤选择器
  • 表单过滤选择器
    • :enabled 过滤选择器
    • :disabled 过滤选择器
    • :checked 过滤选择器
    • selected 过滤选择器
  • 表单对象属性过滤选择器
  • 混淆选择器(第三版新增)

基本选择器

jQuery 的基本选择器以下几种:

选择器描述
ID 选择器根据给定的 ID 匹配一个元素
元素选择器根据给定的元素名称匹配元素
类选择器根据给定的 css 类名匹配元素
通配符选择器匹配所有元素
组合选择器将每一个选择器匹配到的元素合并后一起返回

说明:由于 jQuery 对象是类数组对象,即使匹配的元素只有一个,返回的结果依旧是类数组对象。

用法示例:

<body>
      <div id="d1">一块测试的 div</div>
      <div id="d2" class="cls">另一块测试的 div</div>
</body>
<script>
      // ID 选择器
      console.log($('#d1'));
      console.log("这是一个 ID 选择器")
      // 元素选择器
      console.log($('div'));
      console.log("这是一个元素选择器")
      // 类选择器
      console.log($('.cls'));
      console.log("这是一个类选择器")
      // 通配符选择器(匹配所有)
      console.log($('*'));
      console.log("这是一个通配符选择器")
      /*
          组合选择器
          * 并集:多个选择器之间使用逗号分隔
          * 交集:多个选择器之间没有逗号分隔
      */
      console.log($('#d1,.cls'));
      console.log($('#d2.cls'));
      console.log("这是一个组合选择器")
</script>

上述代码效果如下图所示:

[https://gitee.com/project_almanac/change/raw/master/jQuery/w6tbUIKoE9p1.png](https://gitee.com/project_almanac/change/raw/master/jQuery/CPIq)

层级选择器

jQuery 的层级选择器以下几种:

选择器描述
后代选择器根据给定的祖先元素下匹配所有的后代元素
子选择器根据给定的父元素下匹配所有的子元素
相邻兄弟选择器根据给定的目标元素匹配下一个相邻兄弟元素
普通兄弟选择器根据给定的目标元素匹配后面兄弟元素

用法示例:

<body>
    <div id="parent">
        <div id="child1">
            <div id="d6"></div>
            <div id="d1"></div>
            <div id="d2"></div>
            <div id="d3"></div>
            <div id="d4"></div>
            <div id="d5"></div>
        </div>
        <div id="child2">
            <div id="d3"></div>
        </div>
    </div>
</body>
<script>
    // 后代选择器
    console.log($('#parent div'));
    console.log("这是一个后代选择器");
    // 子选择器
    console.log($('#parent>div'));
    console.log("这是一个子选择器");
    // 相邻兄弟选择器(给定目标元素的下一个相邻兄弟元素)
    console.log($('#d1+div'));
    console.log("这是一个相邻兄弟选择器");
    // 普通兄弟选择器(给定元素后面的兄弟)
    console.log($('d1~div'));
    console.log('这是一个普通兄弟选择器');
    // siblings() 方法 - 获取指定元素的兄弟元素(前面+后面)
    console.log($('#d1').siblings('div'));
</script>

上述代码效果如下图所示:

[https://gitee.com/project_almanac/change/raw/master/jQuery/7BHFrOEwWd!*.png](https://gitee.com/project_almanac/change/raw/master/jQuery/h72OCRTpTZqB.png)

层次选择器中的普通兄弟选择器有个 siblings() 方法能实现类似的功能。

// siblings() 方法 - 获取指定元素的兄弟元素
console.log($('#d1').siblings('div'));

普通兄弟选择器与 siblings() 方法的区别在于,普通兄弟选择器只能获取给定元素后面的兄弟元素,而 siblings() 方法可以获取所有兄弟元素。

基本过滤选择器

jQuery 的基本过滤选择器有以下几种:

选择器描述
:frist过滤选择器获取第一个元素
:last过滤选择器获取最后一个元素
:even过滤选择器匹配所有索引值为偶数的元素,从 0 开始计数
:odd过滤选择器匹配所有索引值为奇数的元素,从 0 开始计数
:eq()过滤选择器匹配一个给定索引值的元素(等于)
:gt()过滤选择器匹配所有大于给定索引值的元素
:lt()过滤选择器匹配所有小于给定索引值的元素
:not()过滤选择器去除所有与给定选择器匹配的元素
:header过滤选择器匹配如 h1,h2,h3 之类的标题元素
animated过滤选择器匹配所有正在执行动画效果的元素

用法示例:

  • body 部分:
<body>
    <div>启嘉网</div>
    <div id="d2">
        <div id="child"></div>
    </div>
    <div></div>
    <div></div>
    <div></div>
    <div>前端开发</div>
    <div id="animated"></div>
</body>

:frist 过滤选择器和 :last 过滤选择器:

  • 获取第一个元素、获取最后一个元素

  • 在指定范围内匹配元素中进行筛选,它们本身没有层次结构,取决于范围。

console.log($('div:first'));
console.log($('div:last'));

:even过滤选择器和:odd过滤选择器:

  • 匹配所有值为偶数或奇数的元素,从 0 开始

  • 索引值为偶数时 -> 奇数元素;索引值为奇数时 -> 偶数元素

console.log($('div:even'));
console.log($('div:odd'));

:eq() 过滤选择器、:gt() 过滤选择器和 :lt()过滤选择器:

  • 匹配给定索引值等于大于或小于的元素

  • :eq(index)index 表示索引值

console.log($('div:eq(0)'));  // 等于
console.log($('div:gt(2)'));  // 大于
console.log($('div:lt(2)'));  // 小于

:header过滤选择器:匹配 h1~h6 元素

console.log($(':header'));

:animated过滤选择器:匹配所有正在执行动画效果的元素(只能匹配 jQuery 实现的动画)

console.log($(':animated')); 

function animated(){
    $('#animated').slideToggle(animated);
}
animated();

:not()过滤选择器:去除所有与给定选择器匹配的元素

console.log($('div:not("#child")'));
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值