jQuery常规选择器

要点:

  • 基础选择器 id选择器、标签选择器、类选择器、子选择器
  • 进阶选择器 群组选择器、后代选择器、通配选择器
  • 高级选择器 层次选择器 属性选择器

一、简单选择器

主要包括id选择器、标签选择器、类选择器、子选择器

1.ID选择器,将Id为box的元素的字体颜色修饰为blue

<div id="box">box</div>
$("#box").css("color", "blue");

2.标签选择器,将所有的p元素的字体颜色修饰为red

<p>p1</p>
<p class="p2">p2</p>
<p>p3</p>
$("p").css("color", "red");

3.类选择器,将class为p2的元素的字体颜色修饰为black

$(".p2").css("color", "black");    

4.可以使用length属性和size()方法来查看我们选择的元素的个数

<div id="box">box</div>
<p>p1</p>
<p class="p2">p2</p>
<p>p3</p>
console.log($("#box").length);     // 1
console.log($("p").size());            // 3

5.子选择器,将ul元素的子元素li的background设置为red

<ul>
    <li>item1</li>
    <li>item2</li>
    <li>item3</li>
</ul>
$("ul > li").css("background", "red");

由于jQuery对于不存在的元素具有容错的处理,我们判断一个元素是否存在有两种方式:

①判断元素的个数或者是判断元素是否存在判断元素的个数

<div id="box">box</div>
if ($("#box").length > 0) {
    console.log($("#box").css("color"));       // rgb(0, 0, 255)
}

②判断元素是否存在,可以使用访问数组的方式或者get()方法来获取元素的第N个元素,从0开始计算

if ($("#box").get(0)) {
    console.log($("#box")[0].innerHTML);       // box
}

二、进阶选择器

主要包括群组选择器、后代选择器、通配选择器

1.群组选择器。获取多个元素的DOM对象,将div,p,span的字体颜色设置为red,用逗号隔开

<div id="box">box</div>
<p class="p">p</p>
<span>span</span>
// 用标签的形式
$("div,p,span").css("color", "red");
// 用id,class和标签的形式
$("#box, .p, span").css("color", "blue");
// 如果想更具体点,可以这样
$("div#box,p.p,span").css("color", "red");

2.后代选择器,用空格隔开

将div下的ul下的li下的a的下划线去掉

<div>
    <ul>
        <li><a href="###">体育</a></li>
        <li><a href="###">新闻</a></li>
    </ul>
</div>
$("div ul li a").css("text-decoration", "none");

3.通配选择器,用*表示,建议少使用

将所有元素的color设置为red

<div>box</div>
<p>p</p>
$("*").css("color", "red");

3.指明元素选择器

<div id="box">box</div>
<div class="pox">pox</div>
$("div#box").css("color", "red");
$("div.pox").css("color", "blue");

4.多类选择器

<div class="div student tom">tom</div>
<div class="div student jack">jack</div>
$(".div.student").css("font-size", "100px");
$(".div.student.jack").css("color", "red");

三.高级选择器

1)层次选择器

主要包括后代选择器、子选择器、next选择器、nextAll选择器

1.后代选择器,上述讲过了,这里过一遍

将div下的ul下的li下的a的下划线去掉

<div>
    <ul>
        <li><a href="###">体育</a></li>
        <li><a href="###">新闻</a></li>
    </ul>
</div>
$("div ul li a").css("text-decoration", "none");
// jquery为后代选择器提供了find()方法
$("div").find("a").css("text-decoration", "none");

2.子选择器,上述也讲过了,这里过一遍

将ul元素的子元素li的background设置为red

<ul>
    <li>item1</li>
    <li>item2</li>
    <li>item3</li>
</ul>
// jQuery为子选择器提供了children()方法
$("ul").children("li").css("font-size", "100px");
$("ul > li").css("background", "red");

3.next选择器,获取当前元素的下一个兄弟元素,用+选取

将div下的class为p1的下一个兄弟节点的字体颜色设置为green

$("div > p.p1+").css("color", "green");

同时,next选择器的等价方法为next()

$("div .p1").next("p").css("color", "red");

4.nextAll选择器,获取当前元素后面的所有兄弟元素,用~选取

匹配div下的div之后的所有的兄弟p元素

<div>
    <div>子div</div>
    <p class="p1">p1</p>
    <p>p2</p>
</div>
$("div div~p").css("color", "green");

同时,nextAll选择器的等价方法为nextAll()

$("div div").nextAll("p").css("color", "red");

ps: 当find()、children()、next()、nextAll()默认传递“*”参数,强烈建议传递参数,否则影响性能

5.prev()和prevAll()方法,匹配同级上一个元素和匹配同级所有元素,这里不再累赘

6.siblings(),匹配上下相邻的所有元素,集成了prevAll()和nextAll()方法的效果

<div>
    <div>子div</div>
    <p class="p1">p1</p>
    <p>p2</p>
</div>

将div下class为p1的兄弟节点为p的元素的backgroun设置为red

$("div .p1").siblings("p").css("background", "red");

7.prevUntil()和nextUntil()方法,匹配同级的上面和下面的所有元素,选取非指定的元素,一旦遇到指定元素就会停止匹配

<div>
    <p>p1</p>
    <p>p2</p>
    <p>p3</p>
    <p class="p4">p4</p>
    <p>p5</p>
    <p>p6</p>
</div>

先选取div下的最后一个p元素,然后向上选取同级的p元素,知道p元素的class为p4为止,即只有p5被选取

$("div p").eq($("div p").length - 1).prevUntil(".p4").css("color", "red");

ps:我们推荐使用方法来匹配元素

2)属性选择器

<a title="num1">num1</a>
<a>num2</a>
<a>num3</a>
<a title="no4">num4</a>
<a title="num5">num5</a>

1.匹配有title属性的a元素

$("a[title]").css("color", "red");

2.匹配有title属性且属性值为某个值的a元素

$("a[title=no4]").css("color", "red");

3.匹配有title属性,且属性值以某个值开头的a元素

$("a[title^=num]").css("color", "red");

4.匹配有title属性,且属性值以某个值结尾的a元素

$("a[title$=5]").css("color", "red");

5.匹配具有title属性且具有num属性值的或者是开头属性值num后跟一个‘-’号,即num-这种形式的

<a title="num-1">num1</a>
<a>num2</a>
<a>num3</a>
<a title="no4">num4</a>
<a title="num5">num5</a>
$("a[title|=num]").css("color", "red");

6.匹配有title属性且属性值不等于num1的a元素

<a title="num1">num1</a>
<a>num2</a>
<a>num3</a>
<a title="no4">num4</a>
<a title="num5">num5</a>
$("a[title!=num1]").css("color", "red");

7.匹配有title属性且属性值是以分隔符分开的列表的a元素

<a title="num1 aaa bbb ">num1</a>
<a>num2</a>
<a>num3</a>
<a title="no4">num4</a>
<a title="num5">num5</a>

$("a[title~=num1]").css("color", "red");

8.匹配具有title属性且属性值中包含num的a标签

<a title="asfdnum1asdf">num1</a>
<a>num2</a>
<a>num3</a>
<a title="no4">num4</a>
<a title="asdfasdfnum5asdfwe">num5</a
$("a[title*=num]").css("color", "red");

9.匹配具有aaa和title属性,且title属性值为num5的a元素

<a title="num">num1</a>
<a>num2</a>
<a>num3</a>
<a title="no4">num4</a>
<a title="num" aaa="aaa">num5</a>
$("a[aaa][title=num]").css("color", "red");
时间: 2024-10-11 03:18:32

jQuery常规选择器的相关文章

jQuery学习笔记——jQuery常规选择器

一.简单选择器在使用 jQuery 选择器时,我们首先必须使用“$()”函数来包装我们的 CSS 规则.而CSS 规则作为参数传递到 jQuery 对象内部后,再返回包含页面中对应元素的 jQuery 对象.随后,我们就可以对这个获取到的 DOM 节点进行行为操作了.#box {//使用 ID 选择器的 CSS 规则color:red;//将 ID 为 box 的元素字体颜色变红}在 jQuery 选择器里,我们使用如下的方式获取同样的结果:$('#box').css('color', 'red

复习jquery的选择器部分

最近工作比较忙,以至于好多东西感觉要忘记似得,今天复习了一些选择器部分的内容,暂时记下~! 没有详细的注释,感觉看到就应该想个差不多就行~! jQuery 常规选择器 1.简单选择器 2.进阶选择器 3.高级选择器 4.属性选择器 一.简单选择器 ID 类(class) 二.进阶选择器 群组选择器 $('ul,li,a')  选取页面标签为 ul,li,a的对象集合 后代选择器 ul li a {}  ul中li下面的a的对象集合 通配选择器 * 选择所有的页面标签 三.高级选择器 后代选择器

jQuery学习笔记之二——常规选择器

jQuery 最核心的组成部分就是: 选择器引擎. 它继承了 CSS 的语法, 可以对 DOM 元素的标签名. 属性名. 状态等进行快速准确的选择, 并且不必担心浏览器的兼容性. 简单选择器#box { //使用 ID 选择器的 CSS 规则color:red; //将 ID 为 box 的元素字体颜色变红}在jQuery 选择器里,我们使用如下的方式获取同样的结果: $('#box').css('color', 'red'); //获取 DOM 节点对象,并添加行为 选择器 CSS 模式 jQ

常规选择器

jQuery最核心的组成部分就是:选择器引擎.它继承了CSS的语法,可以对DOM元素的标签名.属性名.状态(?)等进行快速准确的选择,并且不必担心浏览器的兼容性.jQuery选择器实现了CSS1~CSS3的大部分规则之外,还实现了一些自定义的选择器,用于各种特殊状态的选择. 简单选择器 在使用jQuery选择器时,我们首先必须使用“$()”函数来包装我们的CSS规则.而CSS规则作为参数传递到jQuery对象内部后,再返回包含页面中对应元素的jQuery对象.随后,我们就可以对这个获取到的DOM

谜一样的jquery之$选择器

jquery是一个强大的js类库,提供了很多便利的操作方法并兼容不同的浏览器,一旦使用便欲罢不能,根本停不下来,今天我们就来解读一下这个神秘的jquery源代码. 前几天思考再三,自己尝试着封装了一下jquery的$选择器,然而并不完善,我只对id,class,和标签选择器进行了封装,发现其实如果实现浅层的封装那么我们很容易就能够实现,但是一旦我们尝试着选择器的层次嵌套就会出来很多大大小小的坑! 下面我们先来看一下我个人封装的jquery的选择器部分. window.$ = function (

jquery颜色选择器

本站下载 第二种:纯JAVASCRIPT: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2311"> <title>DW调色板</title> <script> var ColorHex=new Array('00','33','66','99','CC','FF') var SpColo

jQuery 的选择器可谓之强大无比,这里简单地总结一下常用的元素查找方法

1 jQuery 的选择器可谓之强大无比,这里简单地总结一下常用的元素查找方法 2 3 $("#myELement") 选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到的是唯一的元素 4 $("div") 选择所有的div标签元素,返回div元素数组 5 $(".myClass") 选择使用myClass类的css的所有元素 6 $("*") 选择文档中的所有的元素,可

关于jquery ID选择器的看法

最近看到一道前端面试题: 请优化selector写法:$(".foo div#bar:eq(0)") 我给出的答案会是: 1. $("#bar") 2.  $("div#bar") 下面说说我为什么会给出两种答案 1. 因为页面要求ID是唯一的,题目中的语句,可以直接优化成ID选择 2. 因为jQuery的选择器引擎用的是Sizzle,而$("div#bar")这样的写法,在Sizzle内部,会是一个从右往左的查找顺序,也就是

jQuery 复合选择器应用的几个例子

这篇文章主要介绍了jQuery 复合选择器应用的几个例子,本文例子所引用的jQuery版本为 jQuery-1.8.3.min.js,喜欢的朋友可以学习下 <!-- 本文例子所引用的jQuery版本为 jQuery-1.8.3.min.js --> 一. 复合选择器对checkbox的相关操作 ? 1 2 3 4 5 <input type="checkbox" id="ckb_1" />  <input type="chec