jQuery API ( 一 ) -------- 选择器 与 隐式迭代

        我们在学HTML基础时就学过了各种 CSS 选择器,有id选择器,类选择器,标签选择器,子代选择器,后代选择器,交集选择器,并集选择器,伪类选择器,结构伪类选择器 等等。以及在原生 JS 中我们学到的获取元素的种种方法。

在我们的jQuery,也有很多选择器来获取元素,并且做了统一获取标准的封装

目录:

             一: jQuery 基础选择器:

                   两个例子

              二: jQuery 筛选选择器:

                    两个例子

               三:隐式迭代:

                             隐式迭代使所有 li 变色案例:


jQuery 基础选择器:

基本格式: $ (' css选择器 ') 

名称用法描述
通配符选择器$(' * ')获取所有元素
标签选择器$(' div ')获取同一类标签的元素
ID选择器$(' #div ')获取指定ID的元素
类选择器$(' .div ')获取指定类的元素
后代选择器$(' ul li ')获取后代中的某一类元素

子代选择器

$(' ul>li ')获取子代中的某一类元素
交集选择器$(' li.name ')获取交集元素
并集选择器$(' li,p,div ')获取多个元素

 下面举两个例子:

1.获取ul下的li标签,结果为获取到了两个li,存在伪数组

<body>
 <ul>
   <li></li>
   <li></li>
 </ul>
  <script>
    console.log($('ul li'));
  </script>
</body>

 2.获取所有的标签,页面所有的标签都被存放在了伪数组中 

<body>
    <div></div>
    <p></p>
    <ul>
       <li></li>
       <li></li>
    </ul>
    <script>
         console.log($('*'));
    </script>
</body>


 jQuery 筛选选择器:

 注意:在 jQuery 的筛选选择器中与 css 的结构选择器不同之处在于它的index是从0开始的

语法用法( 以li元素为例 )描述
:first$(' li:first ')获取第一个li元素
:last$(' li:last ')获取最后一个li元素
:eq(index)$(' li:eq(1) ')在获取到的li元素中,索引为1的li,注意索引从0开始
:odd$(' li:odd ')在获取到的li元素中,选择索引为奇数的li
:even$(' li:even ')在获取到的li元素中,选择索引为偶数的li

举两个例子:

1.选择索引为奇数的li元素,使其颜色变为绿色(变换样式采用的是jQuery的css方法)

格式:$(' 选择器 ').css(' 属性 ','属性值’')

<body>
    <ul>
       <li></li>
       <li></li>
       <li></li>
       <li></li>
       <li></li>
       <li></li>
       <li></li>
       <li></li>
    </ul>
    <script>
         $('ul li:odd').css('background','green');
    </script>
</body>

 因为筛选选择器的索引从0开始,所以得到奇数索引实际上是数量上的偶数位变色

 2.使索引为3的li变粉色

<body>
    <ul>
       <li></li>
       <li></li>
       <li></li>
       <li></li>
       <li></li>
       <li></li>
       <li></li>
       <li></li>
    </ul>
    <script>
         $('ul li:eq(3)').css('background','pink');
    </script>
</body>

 索引的第三个,因为索引从0开始,所以实际上是数量上的第四个变色


隐式迭代:

如果我们获取了所有的 li,并且设置其为粉色: $('ul li').css('background','pink'),你会发现,所有的 li 都变了粉色,如图所示。

可是这时候我们会想,我们并没有用for循环给每个li设置粉色啊?为什么全部都变了粉色呢?,这就是 jQuery 的隐式迭代

隐式迭代:遍历以伪数组形式存储的内部DOM元素的过程就叫做隐式迭代,它给匹配到的所有元素进行遍历,并给每个元素添加相应的方法

<body>
    <ul>
       <li></li>
       <li></li>
       <li></li>
       <li></li>
       <li></li>
       <li></li>
       <li></li>
       <li></li>
    </ul>
    <script>
         $('ul li').css('background','pink');
    </script>
</body>

        相比较原生 JS ,jQuery 的隐式迭代更为方便,我们在要使所有获取到的标签变为同一样式时可以使开发更为敏捷

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡卡西最近怎么样

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值