jQuery是目前使用最广泛的javascript函数库。一个js文件,页面用script标签引入这个js文件就可以使用。
将获取元素的语句写到页面头部,会因为元素还没有加载而出错,jquery提供了ready方法解决这个问题,它的速度比原生的 window.onload 更快。
$(document).ready(function(){ ...... }); 也可以简写为
$(function(){ ...... });
jquery用法思想:选择某个网页元素,然后对它进行某种操作
$(document) //选择整个文档对象 $(‘li‘) //选择所有的li元素 $(‘#myId‘) //选择id为myId的网页元素 $(‘.myClass‘) // 选择class为myClass的元素 $(‘input[name=first]‘) // 选择name属性等于first的input元素 $(‘#ul1 li span‘) //选择id为为ul1元素下的所有li下的span元素 //对选择集修饰过滤 $(‘#ul1 li:first‘) //选择id为ul1元素下的第一个li $(‘#ul1 li:odd‘) //选择id为ul1元素下的li的奇数行 $(‘#ul1 li:eq(2)‘) //选择id为ul1元素下的第3个li $(‘#ul1 li:gt(2)‘) // 选择id为ul1元素下的前三个之后的li $(‘#myForm :input‘) // 选择表单中的input元素 $(‘div:visible‘) //选择可见的div元素 //对选择集函数过滤 $(‘div‘).has(‘p‘); // 选择包含p元素的div元素 $(‘div‘).not(‘.myClass‘); //选择class不等于myClass的div元素 $(‘div‘).filter(‘.myClass‘); //选择class等于myClass的div元素 $(‘div‘).first(); //选择第1个div元素 $(‘div‘).eq(5); //选择第6个div元素 //选择集转移 $(‘div‘).prev(‘p‘); //选择div元素前面的第一个p元素 $(‘div‘).next(‘p‘); //选择div元素后面的第一个p元素 $(‘div‘).closest(‘form‘); //选择离div最近的那个form父元素 $(‘div‘).parent(); //选择div的父元素 $(‘div‘).children(); //选择div的所有子元素 $(‘div‘).siblings(); //选择div的同级元素 $(‘div‘).find(‘.myClass‘); //选择div内的class等于myClass的元素
思想:同一个函数完成取值和赋值
// 获取div的样式 $("div").css("width"); $("div").css("color"); //设置div的样式 $("div").css("width","30px"); $("div").css("height","30px"); $("div").css({fontSize:"30px",color:"red"});
注意:选择器获取的多个元素,获取信息获取的是第一个
$("#div1").addClass("divClass2") //为id为div1的对象追加样式divClass2 $("#div1").removeClass("divClass") //移除id为div1的对象的class名为divClass的样式 $("#div1").removeClass("divClass divClass2") //移除多个样式 $("#div1").toggleClass("anotherClass") //重复切换anotherClass样式
var $span = $(‘<span>这是一个span元素</span>‘); //创建节点格式: $(‘节点内容‘) $(‘#div1‘).append($span);
//设置input框checked属性 $(‘#check‘).prop({checked:false}); //设置input框disabled属性 $(‘#test‘).prop(‘disabled‘,true) //获取input框disabled属性 $(‘#test‘).prop(‘disabled‘)
$(‘#stop‘).is("span") //返回true或false
$("img").each(function(){ $(this).toggleClass("example"); });
$.each($(‘div‘),function(index, el){ alert($(this).attr(‘class‘)); });
回调函数有两个形参,第一个是索引,第二个是元素对象本身
blur() 元素失去焦点
focus() 元素获得焦点
change() 表单元素的值发生变化
click() 鼠标单击
dblclick() 鼠标双击
mouseover() 鼠标进入(进入子元素也触发)
mouseout() 鼠标离开(离开子元素也触发)
mouseenter() 鼠标进入(进入子元素不触发)
mouseleave() 鼠标离开(离开子元素不触发)
hover() 同时为mouseenter和mouseleave事件指定处理函数
mouseup() 松开鼠标
mousedown() 按下鼠标
mousemove() 鼠标在元素内部移动
keydown() 按下键盘
keypress() 按下键盘
keyup() 松开键盘
load() 元素加载完毕
ready() DOM加载完成
resize() 浏览器窗口的大小发生改变
scroll() 滚动条的位置发生变化
select() 用户选中文本框中的内容
submit() 用户递交表单
toggle() 根据鼠标点击的次数,依次运行多个函数
unload() 用户离开页面
$(‘#btn1‘).click(function(){ // 内部的this指的是原生对象 // 使用jquery对象用 $(this) })
$(function(){ $(‘#div1‘).bind(‘mouseover click‘, function(event) { alert($(this).html()); }); });
$(function(){ $(‘#div1‘).bind(‘mouseover click‘, function(event) { alert($(this).html()); //取消绑定 $(this).unbind(); $(this).unbind(‘mouseover‘); }); });
//绑定hello事件 $(‘#div1‘).bind("hello",function(){ alert("hello world!"); }); //触发hello事件 $(‘#div1‘).trigger("hello");
$(function(){ var $box1 = $(‘.father‘); var $box2 = $(‘.son‘); var $box3 = $(‘.grandson‘); $box1.click(function() { alert(‘father‘); }); $box2.click(function() { alert(‘son‘); }); $box3.click(function(event) { alert(‘grandson‘); event.stopPropagation(); }); $(document).click(function(event) { alert(‘grandfather‘); }); })
$(document).contextmenu(function(event) { event.preventDefault(); });
// event.stopPropagation(); // event.preventDefault(); // 合并写法: return false;
事件委托就是利用冒泡的原理,把事件加到父级上,通过判断事件来源的子集,执行相应的操作,事件委托首先可以极大减少事件绑定次数,提高性能;其次可以让新加入的子元素也可以拥有相同的操作。
$(function(){ $ali = $(‘#list li‘); $ali.click(function(event) { $(this).css({background:‘red‘}); }); })
需要绑定多次,性能不高
$(function(){ $list = $(‘#list‘); $list.delegate(‘li‘, ‘click‘, function(event) { $(this).css({background:‘red‘}); }); })
//上面的例子可写成 $list.undelegate();
ajax技术的目的是让javascript发送http请求,与后台通信,获取数据和信息。ajax技术的原理是实例化xmlhttp对象,使用此对象与后台通信。ajax通信的过程不会影响后续javascript的执行,从而实现异步。
$.ajax({ url: ‘js/user.json‘, type: ‘GET‘, dataType: ‘json‘, data:{‘aa‘:1} }) .done(function(data) { ...... }) .fail(function() { alert(‘服务器超时,请重试!‘); });
<script type="text/javascript"> function aa(dat){ alert(dat.name); } </script> <script type="text/javascript" src="....../js/data.js"></script>
aa({"name":"tom","age":18});
外部js文件调用页面上定义的函数,通过参数把数据传进去。
原文:https://www.cnblogs.com/eliwang/p/15226336.html