Web笔记:jQuery的使用
一、jQuery中的 $
1. 顶级对象
可以使用$(‘DOM对象’)将 DOM 对象转换成一个jQuery对象,使其具备jQuery对象的方法。比如下文的入口函数,将 document 对象转换成了 jQuery 对象,调用了 ready 方法。
2.入口函数
$(function(){// DOMContentLoaded之后需要执行的代码
});
等价于
$(document).ready(function(){
// DOMContentLoaded之后需要执行的代码
});
其作用都等价于:
document.addEventListener("DOMContentLoaded", function(){
// DOMContentLoaded之后需要执行的代码});
3. jQuery对象和DOM对象的转换
jQuery 对象和 DOM 对象相互独立,各自有各自的方法和属性,不能混用,但是可以转换。
jQuery对象的本质是通过选择器进行筛选获取DOM对象后,对其进行伪数组形式的封装,让其具备jQuery对象的方法,观察下面的打印结果:
// html
<div class="first"></div>
<div></div>
// js
var divs = $('div');
console.dir(divs);
var domDiv = document.querySelector('div');
console.dir(domDiv);
结果:
展开 __proto__ 就可以看到很多方法,比如 hide,也就是说,这个对象包含 2 个 DOM 中的 div 对象,额外添加了许多方法和属性。当调用这些方法时,默认会对 jQuery 对象中的伪数组中的所有元素生效,也就是隐式迭代,而伪数组中的元素就是 DOM 对象。
用图表示就是这样:
因为是伪数组的形式,那么 jQuery 和 DOM 的转换就简单了,取出 jQuery 伪数组中的元素即可:
jQuery 对象转 DOM 对象:
// 直接取数组中的元素
divs[1].style.display = "none";
// 使用get方法获取数组中的元素
divs.get(1).style.display = "none";
DOM 对象转 jQuery 对象,使用 $ 符号所得到的对象就是 jQuery 对象:
// 标签选择器
var divs = $('div');
// 类型选择器
$('.first').hide();
注意:get 和 eq 含义不同。 get 是转换对象,eq 是取出 jQuery 对象
二、选择器
使用方法:
$("选择器")
1. 基础选择器:
2. 层级选择器
3. 筛选选择器
使用:
$(function(){$(function(){// 获取结果中的第一个元素$("ul li:first").css("color", "red");// 奇数$("ul li:odd").css("color", "red");// 索引值$("ul li:eq(4)").css("color", "red");});
})
4. 筛选方法
prevAll():之前的所有的符合选择器的元素,默认无选择器表达式
prev():前一个符合选择器的元素,默认无选择器表达式
如下代码就不会改变,因为ul .item
的前一个不符合选择器要求:
$("ul .item").prev(".first").css("color", "red");<li class="first">哈哈啊</li>
<li class="second">哈哈啊</li>
<li class="item">哈哈啊</li>
<!-- <li class="item">哈哈啊</li> -->
另外,siblings的执行对象中的元素不止一个的话,会出现问题,使用时最好确保调用对象只有一个:
<script>
$(function() {$("ul .item").siblings("li").css("color", "red");
})
</script><ul><li class="first">哈哈啊</li><li class="second">哈哈啊</li><li class="item">哈哈啊</li><li class="item">哈哈啊</li><li>哈哈啊</li><li>哈哈啊</li><li>哈哈啊</li><li>哈哈啊</li><li>哈哈啊</li><li>哈哈啊</li><li>哈哈啊</li>
</ul>
结果就是所有的
- 都变成了红色。
5. 两个 eq
选择器中的 eq 遇到变量时,需要使用字符串拼接的方式来使用变量:
var index = 2; $("ul li:eq("+index+")").css("color", "red");
方法 eq 则可以直接使用变量:
var index = 2; // $("ul li:eq("+index+")").css("color", "red"); $("ul li").eq(index).css("color", "red");
所以,推荐使用 eq 方法。
另外,eq(index) 是取得对应 inde 的 jQuery 对象,而 get(index) 方法是将 jQuery 对象转换成 DOM 对象。
6. 排他思想
使用 this + siblings来实现:
<button>按钮</button> <button>按钮</button> <button>按钮</button> <button>按钮</button> <button>按钮</button> <button>按钮</button><script>$(function () {$("button").click(function() {$(this).css("background", "red");$(this).siblings().css("background", "none");});}) </script>
三、样式操作
1. 操作CSS
获取属性值
$("div").css("width");
修改单一属性值
$("div").css("width", "300px"); // px可以省略
修改多个属性值
使用对象的形式来修改多个属性值$("div").css({"width": "300px","height" : "200px","background-color" : "red" })
注意:
- 属性和数字可以不加引号;
- 如果属性不加引号,命名方式是驼峰命名,而不是带 “-”;
- 非数字和属性都要加引号,比如颜色;
- jQuery会默认识别数字单位
上述的第二种写法:
$("div").css({width: 300,height : 200,backgroundColor : "red" })
总结:
加引号是最好的2. 添加/删除类
写好一个类的样式之后,直接将这个类添加到元素中,这样就不需要一个个地去修改样式了
添加类:
addClass
删除类:removeClass
切换类(没有就加,有就删除):toggleClass
举个栗子
Web笔记:jQuery的使用相关推荐
- python web笔记
python web笔记 目的:开发一个平台(网站)~ 前端开发:HTML.CSS.JavaScript~ Web框架:接收请求并处理~ Mysql数据库:存储数据的地方快速上手:基于Flask We ...
- Web前端JQuery面试题(三)
Web前端JQuery面试题(三) 1.怎么阻止冒泡过程? stopPropagation(); // 阻止冒泡过程 2.ready()方法和onload()方法的区别? onload()方法要等页面 ...
- 静态Web开发 JQuery
静态Web开发 JQuery 伍章 JQuery 1节 介绍JQuery和顶级对象 <<锋利的JQuery>> JQuery官网: http://jquery.com (下载j ...
- 使用 jQuery Mobile 与 HTML5 开发 Web App —— jQuery Mobile 默认配置与事件基础
使用 jQuery Mobile 与 HTML5 开发 Web App -- jQuery Mobile 默认配置与事件基础 时间:2012年9月25日 分类:JavaScript 标签:HTML5‚ ...
- jQuery for Web Designers Web开发jQuery教程 Lynda课程中文字幕
jQuery for Web Designers 中文字幕 Web开发jQuery教程 中文字幕jQuery for Web Designers JavaScript是网络的编程语言 但是,使用100 ...
- web前端学习笔记——JQuery
web前端开发基础 第五章--JQuery 传送门:第一章:HTML | 第二章:CSS | 第三章:html5和CSS3 | 第四章:Javascript(part 1) | 第四章--Javasc ...
- Web前端——jQuery库
Web前端笔记 第七部分:jQuery 1. jQuery介绍 jQuery是目前使用最广泛的javascript函数库. 据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库 ...
- JQuery学习使用笔记 -- JQuery插件开发
内容转载自 http://www.css88.com/archives/4821 扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间.这篇文章将概述jQuery插件开发的基本知识,最 ...
- JQuery学习笔记——JQuery基础
#,JQuery避免名称冲突的方法 var jq = jQuery.noConfilct(); jq.ready( function(){ jq("p").hidden(); }) ...
- python web开发 jQuery基础
文章目录 1. 引入 jQuery 2. 基本语法 3. jQuery 选择器 3.1 元素选择器 3.2 #id 选择器 3.3 .class 选择器 4. jQuery事件 5. 获取内容和属性 ...
最新文章
- Python中的sort()方法使用基础
- 【Python】双十一,就用turtle画个单身狗送给自己
- php网页打开输入密码,PHP输入密码查看网页
- 个人常用Sublime Text 插件
- java中对于异常的处理,代码简单描述
- Spotify模式并非“敏捷涅磐”
- 10以内的分解与组成怎么教_【一年级数学】(上)10以内的分与合技巧及练习题...
- 戴尔微型计算机怎么换系统,给戴尔外星人笔记本电脑的win7系统更换为win10系统图文教程...
- 苹果大翻身!双11卖疯了,10分钟成交量超去年全天7倍
- waitpid调用返回出错提示: No child processes问题
- 英语总结系列(四):寻觅激励自我之道
- centos安装libconfig
- 【数学建模】模拟冰山运输系统含Matlab源码
- 华为交换机5720常用命令
- VLAN中SVL和IVL的区别
- prompt综述(截至2021.12.1)
- pptpd搭建过程中 启动成功但不显示ppp0端口
- Kali 开机报错解决方案
- Java 下载 Excel模板时,报修正 Excel在“xxx.xlsx”中发现不可读取的内容。是否恢复此工作薄的内容?如果信任此工作簿的来源,请点击是
- 【深度学习小知识】ROI到ROI pooling 再到ROI Align
热门文章
- php替换字符串字符,php替换字符串中间字符为省略号的方法
- oracle wip 拆解工单 操作_错过血亏!一文搞懂Oracle锁相关视图及相关操作
- JVM监控及诊断工具GUI篇之JProfiler
- 设计模式 ( 二十) 备忘录模式
- 设计模式 ( 十五 ) 模板方法模式
- 线程池Executor框架解读
- Android开发之内容提供者ContentProvider
- 芯片国产化进程提速 赶超洋品牌核心技术尚欠火候
- 批量快速的导入导出Oracle的数据(spool缓冲池、java实现)
- [老老实实学WCF] 第五篇 再探通信--ClientBase