自己对jquery的学习总结
jq的设计思想:
- 模拟css选择元素
$('div') $('.div') $('#div')
- 独有的表达式选择
$('div:first') $('div:even')
- 多种筛选方法
jq写法:
- 方法函数化
.html() .click()
- 链式操作
- 取值赋值合体
与js的区别:
jq与js可以共存,但是不能混用,$(this).html();this.innerHTML 但是不能写成 $(this).innerHTML
取值与赋值
.html()取
.html('hello world')赋
.css('background','red')赋值
一些方法
.has() 包含,不能包含自身
.not()
.filter()过滤,可以过滤自身
.index() 获取索引,当前元素在所有兄弟节点中的位置。
.width() width
.innerwidth width+padding
.outerwidth() width+padding+borfer
.outerWidth(true) width+padding+border+margin
原身js中 .offsetwidth()无法获取display设为none的元素宽度
.parent() 父级
.offsetparent() 有定位的父级
.position().left 定位元素left的值,把当前元素转化成类似定位的形式
.offset().left到屏幕左边的距离的值
.get()把jq转化为js:
如
$('.div').get(0).innerHTML
`.remove .detach都是移除dom元素,区别是:remove会移除这个元素的事件操作行为,但是detach不会`
.parents .closest() 前者起至于父级,后者起至于自身,最亲的父元素,只选中一个,必须带有参数,作为筛选条件。
.clone()克隆
.clone(true)增加原本元素的事件操作方法
.animate()
第一个参数 运动的值和元素
第二个参数 运动时间,默认为400
第三个参数 运动形式 swing linear 注意带分号
第四个参数 function(){} 回调函数,表示运动完成时做出的响应。
.trigger()主动触发,自定义事件很方便。参数为事件名
如:
$('.haoli').on('love',function(){
alert('i love you')
})
点击的时候才会触发,
$('.haoli').trigger('love')
这样变主动触发
$.proxy()改变this的指向
function show(n1,n2){
alert(n1);
alert(n2);
}
$.proxy(show, document,3,4)指向document 参数为3,4