了解jQuery ,jQuery 选择器和筛选器总结

news/2024/7/11 1:21:43 标签: jquery, javascript, 前端

在说选择器和筛选器之前,首先我们来了解一下什么是jQuery:

jQuery 的简介

什么是jQuery

jQuery是 一个前端的方法库
也就是别人将JavaScript程序,定义成了各种函数方法,我们直接写直接用,就可以实现各种功能

jQuery的网站

官网 : https://jquery.com/

中文网站 : http://jquery.cuishifeng.cn/

jquery_9">jquery的三大优点

  1. 强大的选择器机制 — 方便获取标签对象
  2. 优质的隐式迭代 — 默认对数组中的所有标签,进行操作
  3. 无所不能的链式编程 — 再复杂的操作,一行代码搞定

jquery_13">如何使用jquery

  1. 通过外部程序,加载jQuery文件
    可以是本地文件,也可以是网上的文件
  2. 通过 $ 或者 jQuery 的形式 来调用执行jQuery中定义的方法
实例
<script src="./jquery.min.js">javascript"></script>
<script>javascript">
    console.dir($);
    console.dir(jQuery);
</script>

jQuery 的选择器

JavaScript中,有JavaScript获取标签的方式
有的是一个标签对象,有的是一个标签对象的伪数组

document.getElementById
document.getElementsByClassName
document.getElementsByName
document.getElementsByTagName
document.querySelector
document.querySelectorAll

jQuery中,也有自己获取标签对象的方式
即时只有一个符合的标签,获取的结果,也是一个伪数组
不管怎么获取,获取到的都是一个伪数组

以下面的HTML代码为前提,来看看jQuery的选择器有哪些:

<div id="div1" class="div1" name="div1"></div>
<ul>
	<li></li>
	<li></li>
	<li></li>
</ul>

这里,直接输出选择器获取到的标签:

通过标签名称

javascript">console.log($('div'));

通过id属性值

javascript">console.log($('#div1'));

通过class属性值

javascript">console.log($('.div1'));

通过标签属性和属性值

javascript">$('[属性="属性值"]')
console.log($('[name="div1"]'));

通过标签结构 ul中的所有子级li

javascript">console.log($('ul>li'));

通过伪类选择器

ul中子级第一个li
javascript">console.log($('ul>li:first'));
ul中子级最后一个li
javascript">console.log($('ul>li:last'));
ul中子级li,索引下标是奇数的标签
javascript">console.log($('ul>li:odd'));
ul中子级li,索引下标是偶数的标签
javascript">console.log($('ul>li:even'));
ul中子级li,索引下标是2的标签
javascript">console.log($('ul>li:eq(2)'));

当然,像nth-of-type(),nth-child()这样的css中的结构性伪类选择器当然jQuery也是能用的,这里就不一一列举了,用法与上面类似。

总结

总结1
只要是标签有的,只要是css能写的,都可以作为获取标签对象的方法
获取到的是标签对象伪数组

获取到的是一个伪数组
可以像javascript中的forEach那样循环遍历,但是要用jQuery的each方法,不能用JavaScript的forEach语法
for...in,可以使用,但是获取到的内容,太多太多了,我们也不用
实例
javascript">$('ul>li').forEach(function(item){
    console.log(item);  // 会报错
})

for(let i in $('ul>li')){
    console.log( i );
}
总结2
jQuery获取的标签对象,不要直接使用JavaScript的语法形式来操作
JavaScript的标签对象,也不要直接使用jQuery的语法形式来操作

这是两种完全不同的语法形式,获取到的标签对象,也完全不同

但是可以相互转化

jQuery标签对象[索引下标] --- 转化为指定的标签对象,就可以使用对应的JavaScript语法形式
$(JavaScript标签对象) --- 转化为jQuery标签对象,可以使用jQuery语法形式
实例
javascript">// jQuery语法获取的所有ul中子级li标签
console.log($('ul>li')) ;

// jQuery语法获取的所有ul中子级li标签,其中索引是0的指定标签
console.log($('ul>li')[0]); 

// 通过JavaScript语法,获取到一个标签对象
const oDiv = document.querySelector('div');
console.log(oDiv); 

// 转化为jQuery标签伪数组
console.log( $(oDiv) );

jQuery 的筛选器

什么是jQuery的筛选器

在通过选择器,获取到标签对象的基础上,再来进行筛选,选择出符合条件的标签对象
筛选器一定是在选择器的基础上使用
为了链式编程方便

筛选器的执行结果,也一定是一个伪数组

筛选器

还是以下面的HTML代码为样板来演示各筛选器的语法:

<ul>
	<li></li>
	<li></li>
	<li name="li5"></li>
	<li></li>
	<li></li>
</ul>
获取ul中,所有子级li标签
javascript">$('ul>li');
li标签伪数组中,第一个标签对象,也是伪数组
javascript">console.log( $('ul>li').first() );
li标签伪数组中,最后一个标签对象,也是伪数组
javascript">console.log( $('ul>li').last() );
li标签伪数组中,按照索引下标获取
javascript">console.log( $('ul>li').eq(2) );  // 索引是2的第三个标签
当前标签在伪数组中的索引下标
javascript">console.log( $('ul>li').eq(2).index());
当前标签的上一个兄弟标签
javascript">// $('ul>li').eq(2) 索引是2的第三个标签
// $('ul>li').eq(2).prev() 索引是2的第三个标签的上一个兄弟标签,也就是索引是1的第二个标签
console.log( $('ul>li').eq(2).prev() );
当前标签的下一个兄弟标签
javascript">// $('ul>li').eq(2) 索引是2的第三个标签
// $('ul>li').eq(2).next() 索引是2的第三个标签的下一个兄弟标签,也就是索引是3的第四个标签
console.log( $('ul>li').eq(2).next() );
当前标签之前的所有兄弟标签
javascript">// $('ul>li').eq(2) 索引是2的第三个标签
// $('ul>li').eq(2).prevAll() 索引是2之前的所有标签
console.log( $('ul>li').eq(2).prevAll() );
当前标签之后的所有兄弟标签
javascript">// $('ul>li').eq(2) 索引是2的第三个标签
// $('ul>li').eq(2).nextAll() 索引是2之后的所有标签
console.log( $('ul>li').eq(2).nextAll() );
当前标签的所有兄弟标签,不管前后
javascript">// $('ul>li').eq(2) 索引是2的第三个标签
// $('ul>li').eq(2).siblings() 除索引是2的所有兄弟标签
console.log( $('ul>li').eq(2).siblings() );
当前标签的直接父级标签
javascript">console.log( $('ul>li').eq(2).parent() );
当前标签的所有父级标签
javascript">console.log( $('ul>li').eq(2).parents() );
根据条件来查找jQuery,标签伪数组中符合的标签

在ul标签中,find定义的条件来查询

javascript">// 在父级标签中,按照条件找子级标签
// find中的条件语法就像$()获取标签的语法一样,可以是id、class名、属性和属性值等等
console.log( $('ul').find('[name="li5"]') );
当前标签的所有子级标签
javascript">console.log($('ul').children());

http://www.niftyadmin.cn/n/1110688.html

相关文章

Jedit for Linux 开发版(转)

Jedit for Linux 开发版(转)[more]jedit是一个用java编写的源码开放的文本编辑器。它支持超过30种的文件类型并能根据不同文件显示不同的关键字颜色&#xff0c;其中当然包括C、C、JAVA、PERL、HTML等等。它还能自动对行进行缩进(INDENT)&#xff0c;强大的宏功能可以使你方便的…

瑞丽的SQL-SQL Server的表旋转(行列转换)

所谓表旋转&#xff0c;就是将表的行转换为列&#xff0c;或是将表的列转换为行&#xff0c;这是从SQL Server 2005開始提供的新技术。因此&#xff0c;如果希望使用此功能&#xff0c;须要将数据库的兼容级别设置为90。表旋转在某些方面也是攻克了表的数据存储和实际须要之间的…

木马的十大藏身地点(转)

木马的十大藏身地点(转)[more]木马是一种基于远程控制的病毒程序&#xff0c;该程序具有很强的隐蔽性和危害性&#xff0c;它可以在人不知鬼不觉的状态下控制你或者监视你。有人说&#xff0c;既然木马这么厉害&#xff0c;那我离它远一点不就可以了&#xff01; 然而这个木马实…

jQuery 动画详解——比js动画更方便的方法

jQuery 标准动画 通过类似于动画的形式,来完成标签的显示隐藏 实际上,本质,就是我们之前写的 运动函数 通过 定位的 left top 属性 和 透明度 opacity 来完成效果 1. $(标签).show() 显示 语法 : $(标签).show(时间,运动曲线,运动结束时执行的函数) 运动到指定的位置,也就是…

2016数据库考试题

一 填空题 1.1 数据库的本质特征&#xff1a;永久存储、有组织、可共享。 数据库的目标特征&#xff1a;较小的冗余度&#xff0c;较高的独立性&#xff0c;较好的扩展性 1.2 数据库管理系统提供的主要功能有&#xff1a;数据定义功能&#xff08;DDL&#xff09;、数据操纵功…

BEA新版Jrockit与红旗Linux捆绑发布(转)

BEA新版Jrockit与红旗Linux捆绑发布(转)[more]  BEA日前发布了最新版本的BEA JRockit 5.0&#xff0c;首次可用于基于Solaris OS和SPARC的系统上。BEA JRockit 5.0是专门为在基于英特尔处理器的高性能服务器上运行大规模的关键任务型的服务器端应用而设计&#xff0c;包括支持…

JavaScript数组去重(12种方法,史上最全)

JavaScript数组去重&#xff08;12种方法&#xff0c;史上最全&#xff09; 转载自&#xff1a;https://segmentfault.com/a/1190000016418021?utm_sourcetag-newest 数组去重&#xff0c;一般都是在面试的时候才会碰到&#xff0c;一般是要求手写数组去重方法的代码。如果是…

Storm技术结合

http://pan.baidu.com/s/1mhzj5XI?qq-pf-topcqq.group#path%252F