jQuery对象获取

1.jQuery选择器

使用 $(selector) 可以根据选择器规则, 获取到相应的JQ对象。

 <div class="head">
        <a href="" class="logo">
            <img src="" alt="">
        </a>
        <ul class="nav">
            <li class="nav-item">
                <a href="">首页</a>
            </li>
            <li class="nav-item">
                <a href="">新闻</a>
            </li>
            <li class="nav-item">
                <a href="">视频</a>
            </li>
        </ul>
    </div>
    <ul class="list">
        <li class="item">1</li>
        <li class="item">2</li>
        <li class="item">3</li>
        <li class="item">4</li>
        <li class="item">5</li>
        <li class="item">6</li>
        <li class="item">7</li>
        <li class="item">8</li>
    </ul>
    <p title="hello">不凡学院</p>

    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script>
        // 使用基本选择器(class/id/标签名)
        var $head = $('.head');

        // 使用层级选择器(后代/子代...)
        var $lis = $('.nav .nav-item');

        // 使用筛选选择器
        var $li0 = $('li.item:eq(0)');

        // 使用属性选择器
        var $p = $('p[title]');
    </script>

由上例可知:通过 $(选择器) 可以获取到选择器内容对应的 jQ 对象,jQ 对象是由符合选择器条件的所有 DOM 元素组成的伪数组。

在这里插入图片描述

1.1基本选择器

符号说明
$(‘#demo’)选择 id 为 demo 的元素
$(‘.demo’)选择 class为 demo 的元素
$(‘div’)选择所有 div 标签元素
$(‘*‘)选择所有标签元素
$(‘.arr.arr-left’)交集选择器,选择同时具有 arr 和 arr-left 类名的元素
$(‘.arr, .arr-left’)并集选择器,选择具有 arr 或 arr-left 类名的元素

1.2 层级选择器

符号说明
空格后代选择器
>子代选择器
+紧邻选择器
~兄弟选择器

1.3 属性选择器

符号说明
$(‘a[href]’)具有 href 属性的 a 标签
$(‘a[href=’baidu’]’)href 属性为’baidu’的 a 标签
$(‘a[href!=’baidu’]’)href 属性不为’baidu’的 a 标签,包括不具有 href 属性的 a 标签
$(‘a[href^=’www’]’)href 属性以’www’开头的 a 标签
$ (‘a[href $=’cn’]’)href 属性以’cn’结尾的 a 标签
$(‘a[href*=’i’]’)href 属性包含’i’的 a 标签
$(‘a[href][title=’内容’]’)具有 href 属性且 title 属性为’内容’的 a 标签

1.4 筛选选择器

符号说明(index 从 0 开始)
:eq(index)匹配一个给定索引值的元素
:gt(index)匹配所有大于给定索引值的元素
:lt(index)匹配所有小于给定索引值的元素
:odd匹配所有索引值为奇数的元素
:even匹配所有索引值为偶数的元素
:first获取匹配的第一个元素
:last获取匹配的最后一个元素

1.5 其他选择器

符号说明(index从0开始)用法
:empty匹配所有不包含子元素或者文本的空元素$(‘li:empty’)
:contains(text)匹配包含给定文本的元素$(‘li:contains(‘john’)’)

以上方式除基本筛选选择器外选择元素效果与在CSS使用时效果一致。

2. JQuery对象与DOM对象

通过 $(选择器) 可以获取到选择器内容对应的 jQ 对象,jQ 对象是由符合选择器条件的所有 DOM 元素组成的伪数组。

2.1 jQ对象中取出DOM对象

如果我们想把 jQuery 对象包含的 DOM 对象取出,只需对应数组下标取值即可:

// 获取第三个li DOM元素
console.log("第三个li DOM元素", $lis[2]); // <li>li_3</li>
// 获取button元素
console.log("获取button元素", $btn[0]); // <button>按钮</button>

var btn = document.querySelector("button");
console.log($btn[0] === btn); // true

jQ 还提供了 $ele.get(index) 的方法让我们获取其中的 DOM 元素:

// 获取第三个li DOM元素
console.log("第三个li DOM元素", $lis.get(2)); // <li>li_3</li>

2.2 DOM对象转化为jQ对象

为了区分 jQ 元素与 DOM 元素,防止使用方法不当。业界常用方法是使用 $ 作为变量名的前缀修饰获取的 jQ 元素。如上面例子中的 $btn 指代获取的 jQ 对象,btn 指获取的 DOM 对象。

注:因为获取 jQ 对象的方法本质上是调用函数,因此通常使用变量来获取经常使用 jQ 对象,而不是每次都使用 $(selector)
去选择。

不推荐写法:

// 每次操作时, 都要获取jq对象
$(".box").css("width", 100);
$(".box").addClass("d1");
$(".box").attr("title", "hello");

推荐写法:

// 对于要频繁使用的jq对象, 交给变量存储
var $box = $(".box");
$box.css("width", 100);
$box.addClass("d1");
$box.attr("title", "hello");
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值