//jQuery的优点 :
1 轻量级 2 强大的选择器 3 出色的DOM操作的封装 4 可靠的事件处理机制 5 完善的Ajax 6 不污染顶级变量 7 出色的浏览器兼容性 8 链式操作方式 9 隐式迭代 10 行为曾与结构层的分离 11 丰富的插件支持 12 完善的文档 13 开源
$("#foo")和 jQuery("#foo")是等价的
$.ajax 和 jQuery.ajax 是等价的 $符号是jQuery的简写形式
// window.onload : $(function(){ }) $(function(){ }) 就相当于 js 中的window.onload事件一样,是在页面加载完成后,立刻执行的 只有这个和window.onload一样 不过window.onload只能写一个 但是$(function(){ })可以写多个 没有简写的时候是 $(document)ready(function(){ })
//链式操作风格 :
//jQuery对象转成DOM对象 :
1 jQuery对象是一个类似数组,可以通过[index]的方法得到相应的DOM对象
var $cr = $("#cr");//jQuery对象 var cr = $[0]; //DOM对象
2 另一种方法是jQuery本身提供的,通过get(index)方法得到相应的DOM对象
var $cr = $("#cr");//jQuery对象 var cr = $cr.get(0);//DOM对象
//DOM对象转成jQuery对象 :
对于一个DOM对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了. 方式为 : $(DOM对象);
var cr = document.getElementById("cr");//DOM对象 var $cr = $(cr); //jQuery对象
//解决冲突 :
1 如果其他JS库和jQuery库发生冲突,我们可以在任何时候调用 : jQuery.noConflict()函数来将变量$的控制权移交给其他JavaScript库
2 可以直接使用"jQuery"来做一些jQuery的工作
//jQuery选择器
1 基本选择器 基本选择器是jQuery中最常用的选择器,也是最简单的选择器,他通过元素id、class 和 标签名 等来查找DOM元素
//jQuery :
只要获得标签对象 . 就是数组
//jQuery对象获取 :
$("p");//获取所有p标签对象 ---- 获取的对象是数组 $("#aa");//获取id为aa的那个标签的对象 --- 获取的对象是数组 $(".aaa");//获取class为aaa的那个标签的对象 --- 获取的对象是数组
//jQuery对象和DOM对象的转换 :
jQuery的方法和DOM的方法不能互相使用(调用),但是对象可以互相转换 $("p");//是jQuery对象 document.documentElementsTagName("p");//是DOM对象 $(document.documentElementsTagName("p"));//把DOM对象转换成jQuery对象 $("p").get(1);//是一个DOM对象, get(1);代表p这个数组的第二位,(下标为1 就是第二位) $($("p").get(1));//是jQuery对象转成
//jQuery对象转成DOM对象 :
1 jQuery对象是一个类似数组,可以通过[index]的方法得到相应的DOM对象 var $cr = $("#cr");//jQuery对象 var cr = $[0]; //DOM对象 2 另一种方法是jQuery本身提供的,通过get(index)方法得到相应的DOM对象 var $cr = $("#cr");//jQuery对象 var cr = $cr.get(0);//DOM对象
//DOM对象转成jQuery对象 :
对于一个DOM对象,就可以获得一个jQuery对象了. 方式为 : $(DOM对象);
var cr = document.getElementById("cr");//DOM对象 var $cr = $(cr); //jQuery对象
//创建元素 :
$("
//text()文本节点 :
text() : 函数/方法,是获得选定标签内部文本(人眼能够看到的内容)
//attr()获得属性/设置属性/更改属性 :
;
var i = $("p").attr("title");//这是获得p标签里面的title属性的值 $("p").attr("title"," bbb");//把p标签里面的title属性的值 更改为bbb
//removeAttr() 删除指定元素的属性值 :
removeAttr(xx,xx);删除属性值
你最喜欢的水果是?
$("p").removeAttr('title',"你最不喜欢的");//就是把p标签里面的title属性的值,(你最不喜欢的)删除//append()添加元素 :
将匹配到的子元素 添加到指定的父元素中. 函数的链式调用 : 为什么可以链式调用? 是因为前面的函数返回的仍然是调用的那个对象 如下面 a.append(b).append(c) a是个父标签对象,调用函数把b添加进去,并且返回的值,还是a的对象,所以还可以在调用函数,把c也添加进去
//a和b和c 都是标签的对象
var $li_1 = $("
");//只创建了元素节点 var $li_2 = $(""); var $parent = $("ul");$parent.append($li_1).append($li_2); a.append(b);//把 b 添加到 a 里面 的最后面(追加),a是父标签b是子标签 a.append(c);//把 c 添加到 a 里面 的最后面(追加),a是父标签c是子标签 a.append(b).append(c);//把b c 都添加到 a 里面 b 和 c 是同辈 只是b在c的上面 (链式的调用添加) a.prepend(b)//把 b 添加到 a 里面 的最前面 a是父标签 b是子标签 a.insertAfter(b);//把 a 添加到 b 的 后面(同辈的)
a.insertBefore(b);//把 a 添加到 b 的 前面(同辈的) //叫移动节点 //把我们指定元素插入匹配到元素的前面(指定的元素.insertBefore("匹配到的元素"))
//appendTo()添加元素 :
//a是对象 b是标签名 appendTo() : 是将制定元素添加到匹配的元素的集合中去
$("li").appendTo("ul");//把li标签添加到ul中 a.appendTo("b"); //是吧 b 添加到 a 的里面(a是标签 b是标签) 指定元素.appendTo(匹配元素);
//删除元素(是隐藏)remove() :
a.remove();//把 a 从html中删除(是隐藏) var $li = $("ul li:eq(1)").remove();//把ul 里面li标签的第二个删除 eq(1);就是下标为1的那个li元素 也就是第二个吧 因为下标从0开始 $li.appendTo("ul");//把刚才删除的元素重新加入到ul里面 $("ul li").remove("li[title !=苹果]");//把 ul 元素里面所有的 li 元素 title属性不是苹果的 都删除
//removeAttr() 删除指定元素的属性值 :
removeAttr(xx,(你最不喜欢的)删除
//清空empty() :
$("ul li:eq(1)").empty();//找到ul里面第二个li元素 并把内容删除,(文本节点,
//复制选定的节点clone() :
clone(true) : 复制节点,true的时候,节点绑定的事件监听也一起复制过去,不写默认为false
$("li").clone()//复制当前节点 $("li").clone().appendTo("ul");//复制li节点,并将它追加到ul中(是追加到 ul 的内部) $("li").clone(true).appendTo("ul");//复制li节点,并复制li绑定的事件监听,一起追加到ul中(是追加到 ul 的内部)
//替换选定的节点replaceWith(),replaceAll() :
a是被替换的那个对象 b是替换的那个完整标签 a.replaceWith(b);//b就会把a替换掉 (后面的 b 替换了前面的 a) 后面替换前面 b.replaceAll(a);//b把a替换掉 (前面的 b 替换后面的 a) 前面替换后面
//如果有多个p 就会都替换
$("p").replaceWith("
你女朋友最不喜欢的水果是???
");//把整个p标签都换了 换成了你女朋友最不喜欢的水果是???
//如果有多个p 并且只想替换一个
$($("p").get(1)).replaceWith("
你女朋友最不喜欢的水果是???
");//只把第2个p标签替换了 也可以给想要替换的那个标签 加一个ID 就是只替换一个了 $("#abc").replaceWith("//replaceAll() : $("
你妈咪最不喜欢的水果是???
").replaceAll("#abc");//前面的替换了后面的 替换了id为#abc的那个标签 $("//包裹wrap() wraoAll() wrapInner() :
//wrap() :
wrap() : 给匹配 到的元素,包裹一个新的html标. a标签对象(被包裹) b是标签(用b标签包裹) 所有的 a标签 都会被包裹 a.wrap(b); //如果有一个a标签 就包裹成 : 我是a标签 //如果有多个a标签 就包裹成 : 我是a标签 我是a标签 我是a标签 每个都是分开包裹的 不是一起包裹到一起 a.wrap("b");//就是给a添加了一个父标签 a被b包裹
我是p标签
$("p").wrap("");//给p标签添加一个父标签,就是用标签把p标签包裹了 就成了我是p标签
/*我是p标签
*///wrapAll() :
wrapAll():把标签都包裹到一起,就算要被包裹标签没在一起,中间有别的标签,也会吧那个要被包裹标签,都移到一起,在一起包裹 //包裹之前 123
aaa
456 a.wrapAll(b);//全部包裹 //包裹之后 123 456aaa
这样包裹之后,输出的位置就变了,效果也就变了//wrapInner() :
wrapInner(): 将匹配标签中的内容,添加一个指定标签(相当于是给原标签添加一个子标签,并且保存的是父标签的文本内容) 123 : a.wrapInner("b");//结果就是 : 123 用b标签 把a里面的内容括起来
//效果切换 toggleClass() :
是指的效果之间的切换,第一次没有切换的时候有一个效果,切换的时候,是指所有的class综合组成的那个效果 就是当前效果和指定的效果来回切换