jquery 选择器的性能优化
- 尽量使用css中有的选择器
- 避免过度约束
- 尽量以ID开头
- 让选择器的右边有更多的特征
- 避免使用全局选择器
- 缓存选择器结果
提取元素
- $(..).get() 返回所有doem对象的集合,==增强型==
- $(..).get(index) 返回第index的doem对象的集合,
- $(..)[index] 返回第index的doem对象的集合,可以使用负数
- $(..).eq(index)返回 第index的 jQuery对象可以使用负数
.eq()与筛选 :eq() 差不多 但是我们建议使用.eq();
- $(..).toArrey 返回dom数组,
jquery 对象的其他操作
- $(…).is() 返回的是一个布尔值!
- end() 这个是返回的上一个对象, 对有破坏性的操作jq对象的返回
|
|
-addBack() 包含自己的意思
class增删切换
.toggleClass() 里面可以写两个类名
ex:1$().toggleClass("red heid")如果存在red就切换heid 反之!
- 还可以使用函数的1234567$("div").click(function() { //index 表示下标 value 表示$(this).toggleClass(function(index, value)return parseFloat(value) * 1.2;});});
转换元素
- .map() 就是jq的对象转换为另一个jq对象
|
|
遍历jq 但是不需要改变
|
|
特性attributes VS 属性properties
- 获取特性的值:attr(name)
- 设置特性的值:attr(name,value) ;attr(object) 里面还可以的一个函数
- removeAttr() 删除特性 可以多个删除 加空格
操作原素的属性 、、不可小写
- prop()
- prop(name) 只能设置一个不可多个 用于input的选中
- removeProp(name)
再元素中存取数据
- ==获取==:data([name]) //这个可以获取HTML中的data-??中的属性值,也可以获取 js中设置的值,但是优先级是js的高。
- ==设置==:data(name,value) data(object) 设置的属性在HTML中是看不见的,可以设置多个用{…};
- ==删除数据== removeData([name]) 只能删除js只设置的;
- ==判断== jQuery.hasData(element) 这里只能是dom对象不是jq对象
###获取或设置元素尺寸
- width(value)
height(value)
innerHeight(vlue) //包含内边距,不包含边框和外边距
- innerWidth(value)//包含内边距,不包含边框和外边距
-传入true 就包含外边距
-outerWidth(valu) //包含内边距和边框 不一定包含外边距
-outerHeight(valu) //包含内边距和边框 不一定包含外边距
获取或设置位置的滚动
-offset() 返回 top let 的对象 是相对于document
- position() 放回离自己最近的相对定位时的父元素 否则就相对document
- scrollTop(value)
包裹元素
- wrap(wrapper) 把谁的集合一次在 外面包裹了shiu
- wrapAll(wrapper) 把谁的集合 外面包裹了谁
- wrapInner(wrapper) 把这个元素的内容包裹在
- UNwrap() 取消包裹
删除元素
-detach() 不像remeve()一样,他会保留数据和事件
-empty() 删除内容
复制替换元素
.clone([Even[,deepEven]]) 第一个是否复制自己的事件 和数据,第二个是否深度复制
jq 事件的出发 还可以传入参数
- triggerHandler()
- trigger();
==triggerHandler 相比 trigger==- 不会触发浏览器默认事件;
- 不会产生事件冒泡;
- 只触发jq对象集合中的第一个元素的事件处理函数;
- 返回的是事件处理函数的返回值,而不是jq对象。
jq 插件机制
- 扩展jq对象上的方法:jquery.fn.extend()
- 扩展jq 工具方法:jquery.extend()
|
|
|
|