一.解决多库共存的问题
var aa=jQuery.noConflict()运行这个函数将变量$的控制权让渡给第一个实现它的那个库
(function($){
alert($);
})(jQuery)
二.选择器
1. ul li ul下的所有li
2. ul>li 直属子元素
3. + 下一个兄弟元素 不包含当前元素
4. ~ 当前元素后的所有兄弟元素 不包含当前元素
5.:even()获取出的是奇数行 偶数索引值
6:odd()获取出的是偶数行 奇数索引值
7:nth-of-type();
8:only-child() 只能有唯一一个
9:hidden 匹配所有不可见元素
10:visible 匹配出所有的可见元素
三:方法
trigger() 在每一个匹配的元素上触发某类事件。并且会执行浏览器默认操作
triggerHandler()方法可以触发元素的特定事件,同时取消浏览器对此事件的默认操作
hover() 合成事件 由mouseenter与mouseleave 最多有俩次事件处理程序
toggle() 合成事件 至少有俩次事件处理程序
mouseenter与mouseleave 不会冒泡的父元素
mouseover 和 mouseout 会冒泡
:empty() 匹配空元素
addClass('类名不用添加点') 添加类
slideDown() 向下展开
slideUp() 向上收起
filter() 在同级筛选
is(判断是否有class名要加点) 至少有一个元素符合这个给定的表达式就返回true,如果没有元素符号,或者表达式无效,都返回false
hassClass("类名不用加点") 检查当前的元素是否含有某个特定的类,如果有,则返回true
parent() 找上一级的父元素 仅限于使用俩次 不能过多使用不优化
parents() 找祖先元素
closest() 返回最近的匹配元素
children() 找下一级的子元素
find() 找祖孙元素
next() 当前元素的下一个兄弟
nextAll() 当前元素的后的所有兄弟
prev() 当前元素上一个兄弟
prevAll() 当前元素的前的所有兄弟
siblings() 除了自己其他所有的兄弟
toggleClass() 切换类 有就删除没有添加
toggle() 切换显示隐藏
end() 将匹配的元素列表变为前一次的状态 回到最近的一个"破坏性"操作之前 链式操作
data() 只获取带有data属性的元素
innerWidth() 获取元素本身的宽+padding(填充)
outerWidth() 获取元素本身的宽+padding(填充)+border
outerWidth(true) 获取元素本身的宽+padding(填充)+border+boeder+margin
slice(start,end) 可以截一个集合
size() jQuery size() js与length一样
has() 从元素集合中查找含有指定子元素的元素。
内部插入
父元素.append(子元素) 向父元素内容的尾部追加
子元素.appendTo(父元素)
父元素.prepend(子元素) 向父元素内容的前面追加
子元素.prependTo(父元素)
包裹
.wrap() 把所有匹配的元素用其他元素的结构化标记包裹起来
.unwrap() 取消包裹
.wrapAll() 把匹配到的每一个元素用一个标签包裹起来
.wrapInner() 把每一个匹配的元素的子内容用一个标签包裹起来
删除
.empty() 清空一个元素保留本身 删除匹配的元素集合中所有的子节点。
.remove() 删除一个元素
克隆
clone() 复制一个元素true表示复制子元素 false表示只复制结构
四:attr和prop
一个值表示获取属性,俩个值表示设置属性
对与html元素自定义属性用attr来获取设置,但是id class src href..这些属性也用attr来获取更好
对于html元素固有属性用prop来获取或设置,但是用prop来设置返回布尔值的元素更好一些
五: each
$.each()用于遍历数组和对象多一些
$(jq对象).each()用于jq对象多一些
1.遍历一维数组
var arr=['one','two','three']
$.each(arr,function(i,val){
console.log(i)//数组中元素的下标
console.log(val)//数组中元素的下标对应的值
})
2.遍历二维数组
var arr2=[['one','two','three'],['four','five','six']]
$.each(arr,function(i,val){
$.each(val,function(i,v){
})
})
3.遍历对象
var obj={"name":"zs","id":"160"}
$.each(obj,function(key,val){
console.log(key) name id
console.log(val) zs id
})
- var data = [
{"haha": "123" },
{"haha": "123" },
{"haha": "123" },
{"haha": "123"}
]
$.each(data, function(i, v) {
console.log(i) // 01234
console.log(v) // {"haha": "123"}{"haha": "123"}{"haha": "123"}
console.log(v.haha) //123
})
$.inArray(要查找的值,待处理数组); 找到返回的下标,找不到返回-1
$.isFunction()检测一个对象是否是函数
-------------------------------------------------------------------------------------一:
on() 时间代理 能找到的父元素.on("事件类型","代理的子元素")
off(要移除的事件)
delegate() 专做时间代理 能找到的父元素.delegate("代理的子元素","事件类型")
undelegate(要移除的事件)
live() 可以直接给后添加的元素绑定事件 但是查找范围太大(从根元素开始查找)1.7版本以后此方法已被废除
能找到的父元素.live("事件类型")
die(要移除的事件)
bind()不能给后添加的做代理