-
Notifications
You must be signed in to change notification settings - Fork 2
JQuery 笔记
layout: post
title: "JQuery 笔记"
jQuery 对象就是通过jQuery包装DOM对象后产生的对象。 jQuery对象是jQuery独有的,如果一个对象是jQuery对象,那么久可以使用jQuery里的方法。
在jQuery中无法使用DOM对象的任何方法。同样,DOM对象也不能使用jQuery里的方法。
常用的CSS选择器
-
标签选择器
1.1 语法:
E{ CSS规则 }1.2. 描述:以文档元素作为选择符
1.3. 实例:
td{ font-size:14px; width:120px; } -
ID选择器
2.1 语法:
``` #ID{ CSS规则 } ```2.2 描述: 以文档元素的唯一标识符ID作为选择符
2.3 实例:
``` #note{ font-size:14px; width:120px; } ``` -
类选择器
3.1 语法:
``` E.className{ CSS 规则 } ```3.2 描述:以文档元素的class作为选择符
3.3 实例:
``` div.note{ font-size:14px; width:120px; } .dream{ font-size:14px; } ``` -
群组选择器
4.1 语法:
E1,E2,E3{ CSS规则 }4.2 描述:多个选择符应用同样的样式规则
4.3 实例:
td,p,div.a{ font-size:14px; } -
后代选择器
5.1 语法:
E F{ CSS规则 }5.2 描述:元素E的任意后代元素F
5.3 实例:
#link a{ color:red; } -
通配选择器
6.1 语法:
``` *{ CSS规则 } ```6.2 描述:以文档的所有元素作为选择符
6.3 实例:
``` *{ font-size:14px; } ```
jQuery选择器的写法与CSS选择器的写法十分相似,只不过两者的作用效果不同,CSS选择器找到元素后是添加样式,而jQuery选择器找到元素后是添加行为。
jQuery中涉及CSS样式的部分比单纯的CSS功能更为强大,并且拥有跨浏览器的兼容性。
jQuery的简洁写法:
- $("#ID")可以代替document.getElementById(),
- $("tagName")可以代替document.getElementByTagName();
选择器 描述 返回 示例
选取<div> 里的所有的<span>
选取<div>元素的下元素名<span>的子元素
选取class为one的下一个<div>元素
$("prevsiblings") 选取prev元素之后的所有sibling元素 集合元素 $(“#twodiv“)选取id为two的元素后面的所有
$("div:hidden").show(1500);
过滤选择器 主要是通过特定的过滤规则来筛选出所需的DOM元素,过滤规则与CSS中的伪类选择器语法相同,即选择器都以一个冒号(:)开头。按照不同的过滤规则,过滤选择器可以分为基本过滤,内容过滤,可见性过滤,属性过滤,子元素过滤和表单对象属性过滤选择器。
选择器中含有特殊符号的注意事项
- 转义符转义
- 1.3.1版本彻底放弃1.1.0 版本遗留下来的@符号,如果你使用1.3.1以上的版本,那么不能再属性前添加@符号。
- 选择器中含有空格的注意事项。
几个jQuery方法:
- show():显示隐藏的元素
- css(name,value):给元素设定样式
- text(string):设置所有匹配元素的文本内容
- filter(expr):筛选出与指定表达式匹配的元素集合,其中expr可以是多个选择器的组合。注意区分它和find()方法。find()方法会在元素内寻找匹配元素,而filter()则是筛选元素。一个是对它的子集操作,一个是对自身集合元素进行筛选。
- addClass(class):为匹配的元素添加指定的类名
- removeClass(class):从匹配的元素中删除类名
text()方法
类似于JavaScript 中的innerText属性,可以用来读取或设置某个元素中的文本内容。
val()方法
类似于JavaScript中的value属性,可以用来设置和获取元素的值。无论元素是文本框,下拉列表还是单选框,都可以返回元素的 值。如果元素为多选,则返回一个包含所有选择的值的数组。
遍历节点
- children() 该方法用于匹配元素的子元素集合
- next() 用于获取匹配元素后面紧邻的同辈元素
- prevent() 用于获取匹配元素前面紧邻的同辈元素
- sibling() 用于获取匹配元素前后所有的同辈元素
jQuery中有一个方法能够给一个按钮添加一组交互式事件。而不需要判断:
toggleBtn.click(function(){
If(true){
//元素隐藏
}else{
//元素显现
}
})
toggleBtn.toggle(function(){
If(true){
//元素隐藏
}else{
//元素显现
}
})
Node:
toggle()方法的作用是是交替执行代码,如果原来是显示的,则隐藏它;如果原来是隐藏的,则显示它。 toggle()方法主要是控制行为上的重复切换。
DOM 文档对象模型
根据W3C DOM规范,DOM是一种与浏览器,平台,语言无关的接口,使用该接口可以轻松地访问页面中的所有标准组件。 DOM的分类:DOM Core ,HTML—DOM,CSS—DOM
toggleClass()控制样式上的重复切换。如果类名存在则删除它,如果类名不存在则添加它。 $("p").toggleClass("another");
html()方法
html()方法,类似于JavaScript中的innerHTML属性,可以用来读取或设置某个元素中的HTML内容。
html()方法可以用于XHTML文档,但不能应用于XML文档。
CSS-DOM技术简单来说就是读取和设置style对象的各种属性。style属性很有用处,但是最大的不足是无法通过它来提取到通过外部CSS设置的样式信息。然而在jQuery中这个很容易办到。 可以直接用css()方法来获取元素的样式属性 $(“p“).css(”color“); 无论color属性是外部CSS导入,还是直接拼接在HTML元素里(内联),css()方法都可以获取到属性style里的其他属性的值。
window.onload() and $(document).ready()
以浏览器装载文档为例,在页面加载完毕后,浏览器会通过JavaScript为DOM元素添加事件。在常规的JavaScript代码中,通常使用window.onload()方法,而在jQuery中,使用的是$(document).ready()来代替传统的JavaScript的window.onload()。$(document).ready()是事件模块中最重要的一个函数,可以极大地提高web应用程序的响应速度。通过该方法,可以在DOM载入就绪时就对七进行操纵并调用执行它所绑定的函数。
执行时机
举个例子,有一个大型的图库网站,为网页中所有图片添加某种行为,例如单击图片后让它隐藏或显示。如果使用window.onload()方法来处理,那么用户必须等到每一幅图片加载完毕后,才可以进行操作。如果使用jQuery中 的$(document).ready()来进行设置,只要DOM就绪就可以操作了,不需要等待所有的图片下载完毕。很显然,把网页解析为DOM树的速度比把页面中的所有关联文件加载完毕的速度快很多。
另外需要注意一点,由于在$(document).ready()内注册的事件,只要DOM就绪就会被执行,因此可能此时元素的关联文件还未下载。例如与图片有关的HTML下载完毕,而且已经解析为DOM树了,但可能图片还未加载完毕,所以例如图片的高度和宽度这样的属性此时不一定有效。要解决这个问题,可以使用jQuery中另外一个关于页面加载的方法——load()方法。load()方法会在元素的onload事件中绑定一个处理函数。如果处理函数绑定在window上,则会在所有内容(包括窗口,框架,对象和图像等)都加载完毕后触发,如果处理函数绑定在元素上,这会在元素的内容加载完毕后触发。
$(window).load(function(){
//ToDo
}
window.onload=function(){
//ToDo
}
简写方式:
$(document).ready(function(){
//ToDo
})
$(function({
//ToDo
})
note:
当发现相同的选择器在你的代码里出现多次时,请用变量把它缓存起来。有利于性能优化。
version3.0
```
/*version 3.0*/
$(function(){
$("#panel h5.head")
.bind("click",function(){
var $content=$(this).next();
if ($content.is(":visible")) {
$content.hide("fast");
}else{
$content.show();
}
})
})
```
version2.0
```
/*version 2.0*/
$(function(){
$("#panel h5.head")
.bind("click",function(){
if ($(this).next().is(":visible")) {
$(this).next().hide(3000);
}else{
$(this).next().show();
}
})
})
```
toggle(fn1,fn2,fn3….fnN)
toggle()方法用于模拟鼠标连续单击事件。第一次单击元素,触发指定的第一个函数fn1,当再次单击同一个元素时,则触发指定的第二个函数fn2,如ugoyou更多的函数则依次触发,知道最后一个。随后,的每次单击都重复对这几个函数轮番调用。
阻止事件冒泡
$("element").bind("click",function(event){
//….
event.stopPropagation();
});
-
阻止默认行为,event.preventDefault();
-
停止事件冒泡,event.stopPropagation();
可简写为
return false;
jQuery中的动画
show()和hide()方法是jQuery中最基本的动画方法。在HTML文档里,为一个元素调用hide()方法,会将该元素的display样式改为“none”
$("element").hide() $("element").css("display","none")
Sample
-
网页选项卡
-
表格内容筛选器
-
表格展开关闭
-
网页自动换肤
Ajax
-
load() 是jQuery中最为简单和常用的 Ajax方法,能载入远程HTML代码并插入DOM中。结构为:
load(url [,data] [,callback] ) -
$.get() 使用GET方式来进行异步请求.结构为:
$. get(url [,data] [,callback] [.type])