jQuery学习(二)-常规选择器

本文详细介绍了jQuery中的选择器,包括简单选择器、进阶选择器和高级选择器,并讲解了如何利用这些选择器来高效地选取和操作DOM元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、常规选择器分类
(1)、简单选择器
(2)、进阶选择器
(3)、高级选择器
二,简单选择器(id选择器,元素选择器,类选择器)
(1)id选择器
使用jQuery选择器时,必须使用“$()”函数来包装我们css规则,经过jQuery对象包装后,返回对应元素的jQuery对象,我们得到这个DOM节点后就可以进行操作啦。

#box{       //使用ID选择器的css规则     
color:red;  //将ID为box的元素字体颜色变红
}

在jQuery选择器里,我们使用如下方式可以获取同样的结果:

$("#box").css("color","red"); //获取DOM节点对象,并添加行为

(2)元素选择器和类选择器
这里写图片描述

$("div").css("color","red");  //(1)元素选择器,返回多个对象
$("#box").css("color","red"); //(2)ID选择器,返回单个对象
$(".box").css("color","red"); //(3)类(clas)选择器,返回多个对象

为了证明ID返回的是单个元素,元素选择器和类选择器返回的是多个对象,我们可以使用jQuery的一个属性length或size()方法查看返回元素个数。

三、进阶选择器(群组选择器,后代选择器,通配符选择器)

这里写图片描述

//(1)群组选择器
span , em , .box{  //多种选择器添加红色字体
    color:red;
}
$("span , em , .box").css("color","red");//群组选择器jQuery方式

//(2)后代选择器
ul li a{
    color:red; //层层追溯到的元素添加红色字体
}
$("ul li a").css("color","red"); //后代选择器jQuery的方式

//(3)通配符选择器
*{
    color:red; //页面上所有元素都添加红色字体
}
$("*").css("color","red"); //通配符选择器jQuery的方式

//特殊选择器,可以在ID和类(class)中指明元素前缀
$("div.box"); //限定.box元素获取必须是div标签
$("p#box") //限定#box元素获取必须是p标签

目前介绍的六中选择器,在实际开发中我们可以灵活搭配,使得选择器更加的准确和快速:

$("#box p , ui li * ").css("color","red"); //组合了多种选择器

注意:通配符选择器比如$(“*”),这种使用方法效率很低,影响性能,建议少用。

三、高级选择器

这里写图片描述

//(1)后代选择器
$("#box p").css("color","red"); 

jQuery为后代选择器提供了一个等价的find()方法
$("box").find("p").css("color","red"); //和后代选择器等价

//(2)子选择器

$("#box >p").css("color","red"); //对应jQuery使用

jQuery为子选择器提供了一个定价的children()方法:
$("#box").children("p").css("color","red"); //和子选择器等价

//(3)next选择器(同级节点下一个元素)
$("#box+p").next("p").css("color","red");

jQuery为next选择器提供了一个等价的方法next();
$("#box").next("p").css("color","red");

//(4)nextAll选择器(同级节点所有元素)
$("#box~p").css("color","red");

jQuery为nextAll选择器提供了一个等价的方法nextAll();
$("#box").nextAll("p").css("color","red");

注意:在find()、next()、nextAll()、和children()这四个方法中,如果不传递参数,就相当于传递了”*”,即任何节点,不但影响性能,在复杂情况下产生怪异的结果。

为了补充高级选择器的这四中模式,jQuery提供了更加丰富的方法来选择元素

$("#box").prev("p").css("color","red"); //同级上一个元素
$("#box").prevAll("p").css("color","red"); //同级所有上面的元素


nextUntil()和 prevUnitl()方法是选定同级的下面或上面的所有节点,选定非指定的所有 元素,一旦遇到指定的元素就停止选定。

//同级上非指定元素选定,遇到则停止
$('#box').prevUntil('p').css('color', 'red');
//同级下非指定元素选定,遇到则停止 
 $('#box').nextUntil('p').css('color', 'red'); 


siblings()方法正好集成了 prevAll()和 nextAll()两个功能的效果,及上下相邻的所有元素 进行选定:

//同级上下所有元素选定
$('#box').siblings('p').css('color', 'red');

//等价于下面:
//同级上所有元素选定 
 $('#box').prevAll('p').css('color', 'red'); 
 //同级下所有元素选定
 $('#box').nextAll('p').css('color', 'red');

注意:以上选择器对其变量进行缓存,速度会进一步提高
var box = $('#box'); 
var p = box.find('p');

四、属性选择器

这里写图片描述

注意:图片上的“a””代表元素名称“title”代表属性名称。

//选定具有这个属性=这个属性值的
$("li[class=class1]").css("color","red");

//选定具有这个属性且以开头属性值匹配的
$("div[title^=title1]").css("color","red");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值