时隔一年再次回顾《锋利的jQuery》这本书很多方法依然经典,只是现在各种MVX框架比较火,所以平时用的不多难免遗忘,现将这些以博客形式记录,方便日后复习查看。
1.jQuery对象和Dom对象互转
jQuery=>Dom ([index]或者get(index))
var $btn = $("#btn"); //jQuery对象
var btn1 = $btn[0] //Dom对象
var btn2 = $btn.get(0) //Dom对象
Dom => jQuery
> var btn3 = document.getElementById("btn"); //Dom对象
> var $btn4 = $(btn3); //jQuery对象
2.jQuery选择器完善的处理机制
eg:给id为“tt”的元素(实际不存在)设置字体颜色为红色
> var tt = document.getElementById("tt");
tt.style.color="red"; //浏览器报错 tt不存在
正确的写法为:
if(document.getElementById("tt")){
document.getElementById("tt").style.color="red";
}
而jQuery的写法为:
$("#tt").css("color","red");
注意:jQuery获取的永远是对象,不能用于判断元素是否存在,即错误的判断方法:
if($('#tt')){
//do something
}
正确的姿势应该是:
if($('#tt').length>0){
//do something
}
或者
if($('#tt')[0]){
//do something
}
3.过滤器
3.1基本过滤器
> :not(select) 去除匹配的元素
:even(index) 匹配索引为偶的元素(索引从0开始)
:odd(index) 匹配索引为奇的元素(索引从0开始)
:gt(index) 匹配索引大于index的元素(索引从0开始)
:lt(index) 匹配索引小于index的元素(索引从0开始)
:header 匹配标题元素h1-h6
3.2 子元素过滤选择器
> :nth-child(index/even/odd/2n/3n+2) 匹配父元素下index或者偶或者奇等元素,index从1开始
:first-child 同理
:last-child
:only-child
3.3 表单对象属性过滤
> :input //选取所有input textarea button select元素
> :text //选取所有单行文本框
> :password //密码
> :checkbox //复选框
> :radio //单选框
> :submit //提交按钮
> :reset //重置按钮
> :image //图片
> :button //所有按钮
> :file //上传域
> :hidden //隐藏元素
4.jQuery Dom操作
4.1 detach()方法
detach()方法和remove()一样从dom中去掉匹配元素,但是不会从jQuery中删除,detach会把元素绑定的事件,数据等保留下来再次使用
4.2 clone()方法
clone()克隆Dom结构
clone(true) 克隆Dom结构及其元素上绑定的事件
4.3 wrap() wrapAll() wrapInner()
wrap()将所有匹配的元素分开包裹,
wrapAll将所有匹配的元素一次性包裹,
wrapInner将元素包裹在内层,匹配元素在外层
4.4 CSS-Dom常用的定位方法
offset() 相对视窗的偏移
position() 最近的一个带有绝对或者相对定位的父元素的偏移量
scrollTop() scrollLeft() 滚动条滚过的距离
网友评论