节点的选择
(1).first()
(2).last()
(3).slice() 参数 :[开始位置 ,结束位置) 不包括结束位置
(4).children() 直接的子元素 ,也可加参数进行过滤 ,eg : .children('div') 只匹配子元素div
(5).find()
注意 :必须写参数 find('div'),也可用(*)选取所有,会找到全部子孙节点
性能 :$('ul').find('li').css() 比 $('ul li').css() 性能要好
(6).parent()
(7).parents() 找所有的父节点,包括祖祖...节点
(8).closest() 也是找父节点
区别 :.closest()精确的查找,.closest('.box'),找的是最近的满足条件的元素(在所有父节点中找,也包括自身),只能是一个
16、创建元素
$<'li'>
$('<div id="box1">123</div>')
17、添加节点
(1)insertBefore() before() 指定元素的前面(兄弟)
(2)insertAfter() after() 指定元素的后面(兄弟)
(3)append() appendTo() 舔到父元素里面的最后(appendChild)
(3)prepend() preendTo() 舔到父元素里面的最前
18、节点删除、清空、替换、clone操作
(1) remove() 只会保留当前selector的结构,操作行为不会保留(如click事件)
(2) detach() 既保留结构,也保留操作行为
(3) empty() 清除节点,包括后代元素
(4) 替换节点
$('div').replaceWith($('span')) span替换div
$('div').replaceAll($('span')) div替换span
(2)clone();
注意 : clone的默认行为不会clone节点的操作行为,加上参数clone(true)则会克隆节点的操作行为
19、jQuery中的索引
index()
注意 :
(1)索引是指兄弟节点中的排行
(2)筛选后的排行
(3)善于利用索引做实例,例如选项卡
(4)也可加参数 index('span')
20、each 循环遍历
$('li').each(function( i , elem ) {
console.log(i) //li的下标
console.log(elem) //元素的元素
$(this) == elem
$(this).html(i);
if (i==2) {
return false; //跳出循环
};
})
21、JQ包装对象
(1) wrap() $('span').wrap('<div></div>') 给每个span外包一个div
(2) wrapAll() $('span').wrapAll('<div></div>') 所有的span包在一个div中
(3) wrapInner() $('span').wrapInner('<div></div>') 给每个span内包一个div
(4) unwrap() 删除父级,body是删除不掉的
eg : 权限设置
22、Jq转原生Js
get();
eg :
$('.div1').innerHTML //错误写法,一个jq写法,一个原生js写法
改写 :$('.div1').get().innerHTML //则不会出错,但是结果是 undefined,
进一步改写 : $('.div1').get(0).innerHTML //$('.div1').get()获取到的是一个集合
利用转原生的好处,因为jq有些js原生方法没有,比如获取内容高度
$('.div1').height() //这是div的高,并不是它的内容高
$('.div1').get().scrollHeight()