jq至今任然没被淘汰还有很多人使用,可见方便性兼容性很高;
实用方法:
属性选择符:
$(‘a[href^=“mailto”]’) 选择href属性值以mailto开头的a标签;
$(‘a[href $=".pdf"]’)选择href属性值以.pdf结尾的a标签;
$(‘a[href *=“henry”]’)选择属性值中有henry的啊、标签;
$(‘div:odd’)选择奇数项;
$(‘div :even’)选择偶数项;
$(‘div:contains(xxxx)’)选择内容中有xxx的div(内容有英文区分大小写);
事件
$(document).ready();在页加载后执行等同于原生window.onload不同点是可重复定义且不会被覆盖只会按照定义顺序执行;
简写形式: $( function () { } )();
DOM遍历:
$(‘el’).filter( ()=>{}) 过滤;
next();nextAll();选择下一个最接近同辈的子元素;
prev();prevAll();选择上一个接近同辈的子元素;
.hover();类似css3:hover伪类,鼠标滑过效果;该方法接收两个函数参数,第一个函数指鼠标进入元素,第二个函数指鼠标移出元素;
事件传播过程:先捕获后冒泡;
因为事件冒泡导致元素的父祖级元素也会加上该事件;
如何避免:
1.通过target可以确定被点击的元素;
$(el).click(function(ev){
if(ev.target==this){
$(el).addClass("red");
}
})
2.停止事件传播
IE设置事件对象的cancelBubble属性的指为false;
或者调用事件对象stopPropagationl()方法;
阻止默认操作(.preventDefault());默认操作不在正常的事件传播流中发生;事件传播和默认操作是相互独立的两套机制,二者任何一方发生都可以阻止另一方,想要同时停止可以在事件处理中返回false;
事件委托(事件代理)
利用事件冒泡的高级技术;
$(el).on(“click”,function(){ } );
移除事件
$(el).off(“click”);
加命名空间针对性移除:
$(el).on(“click.collapse”,function(){}); $(el).off(“click.collapse”);
对于只需触发一次就移除的事件;简写方法:
$(el).one(“click”,function(){});
自动触发事件:
$(el).trigger(“click”);
Ajax
无需刷新页面即可从服务器上加载数据的手段
$(doqument).ajaxStart();监听ajax 这里可以给页面添加loading信息,提示正在加载;
$(doqument).ajaxStop();请求结束;