jQuery相关
jQuery官网:http://jquery.com
jQuery在线API:http://api.jquery.com
jQuery UI:http://jqueryui.com
jQuery核心选择器Sizzle.js:http://sizzlejs.com
1、jQuery的ready事件与window.onload事件的区别:1)、window.onload需要等页面上全部加载完毕,其中包含页面中的标签引用的其它资源(整个页面需要加载完毕);而jQuery的ready事件,只要等待页面上的所有标签加载完毕就能触发。所以说从用户的角度来说,使用jQuery事件会让用户感觉处理速度变快了
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
//1、javascript中页面加载完毕触发
window.onload = function () { };
//2、jQuery中页面加载完毕触发
//2.1、完整的写法
$(document).ready(function () { });
//2.2、简写
$(function () { });
//2.3、完整写法,jQuery的符号就是‘$’
jQuery(document).ready(function () { });
//2.4、简写
jQuery(function () { });
//3、以上jQuery的写法只是window.onload的类似写法,下面这才是和window.onload表达意思相同的写法
$(window).load(function () { });
</script>
</head>
<body>
</body>
</html>
2、$.each(obj,function(){});循环遍历键值对或数组
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
var arrInt = [1, 2, 3, 4, 5, 6, 7, 8];
$.each(arrInt, function (key,value) {
alert(key + ' , ' + value);
});
var p = { 'name': '张三', '年龄': 20, 'email': '123@yaho.com' };
$.each(p, function (key, value) {
alert(key + ' , ' + value);
});
</script>
</head>
<body>
</body>
</html>
3、$.map(obj,function(elements,index){});遍历数组或者键值对将返回值添加到新的数组或键值对
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
var arrInt = [10, 20, 30, 40, 50, 60, 70];
var newArr = $.map(arrInt, function (elements,index) {
if (index > 3) {
return elements * 2;
} else {
return elements;
}
});
alert(newArr);
</script>
</head>
<body>
</body>
</html>
4、jQuery对象和dom对象是可以互相转换的。
1)、当直接使用dom对象的时候会存在浏览器兼容问题,所以这时候可以把dom对象转换位jQuery对象,然后再操作。
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
document.getElementById('btn1').onclick = function () {
//获得一个dom对象
var domObj = document.getElementById('div1');
//将dom对象转换位jQuery对象
var $jqObj = $(domObj);
//调用jQuery对象的text方法
$jqObj.text('Hello!');
}
});
</script>
</head>
<body>
<input type="button" name="name" value="添加" id="btn1"/>
<div id="div1" style="width:200px;height:200px;border:1px solid green;">
</div>
</body>
</html>
5、jQuery中的一些常用方法
1)、val方法:有参数表示设置文本框的值,无参数表示取得文本框中的值
2)、css方法:设置对象的样式,可以一个键值对一个键值对的设置,也可以一次性传一个键值对集合批量设置
3)、text方法和html方法:都可以设置超链接显示的文字,html可以显示图片
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
$('#btn1').click(function () {
//获取文本框对象
var $txt = $(document.getElementById('txt1'));
//取得文本框中的内容,无参的val表示获取值
alert($txt.val());
//给文本框中设置值,有参的val表示设置值
$txt.val('啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!');
//设置样式(传一对键值对一个一个设置)
$txt.css('border', '2px solid blue');
//设置样式(传一个键值对集合批量设置样式)
$txt.css({
'border': '2px solid red',
'width': '200px',
'height':'100px'
});
var $alink = $(document.getElementById('a1'));
$alink.text('百度一下你就知道');
$alink.html('百度两下你就不知道');
});
});
</script>
</head>
<body>
<input type="button" id="btn1" name="name" value="按钮" />
<input type="text" id="txt1" value="" />
<a id="a1" href="http://www.baidu.com">百度</a>
</body>
</html>
6、选择器
1)、id选择器:$('#id')
2)、标签选择器:$('p')
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
$('#div1').css({
'width':'200px',
'height': '200px',
'background-color':'red'
});
$('p').css({
'background-color': 'red'
});
});
</script>
</head>
<body>
<div id="div1"></div>
<p>吼吼吼吼吼吼吼吼吼</p>
<p>吼吼吼吼吼吼吼吼吼</p>
<p>吼吼吼吼吼吼吼吼吼</p>
<p>吼吼吼吼吼吼吼吼吼</p>
<p>吼吼吼吼吼吼吼吼吼</p>
<p>吼吼吼吼吼吼吼吼吼</p>
<p>吼吼吼吼吼吼吼吼吼</p>
</body>
</html>
3)、类选择器:$('.x')
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
//选取所有应用了x类的元素
$('.x').css({
'border':'2px solid red'
});
});
</script>
</head>
<body>
<div id="div1"></div>
<input class="x" type="button" />
<input class="x" type="text" />
<span class="x">哈哈</span>
<p class="x">春眠不觉晓</p>
</body>
</html>
4)、标签+类选择器:$('input.x')
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
//选取所有应用了x类的元素
$('.x').css({
'border':'2px solid red'
});
//选取所有应用了x类的input元素
$('input.x').css({
'border':'4px solid yellow'
});
});
</script>
</head>
<body>
<div id="div1"></div>
<input class="x" type="button" />
<input class="x" type="text" />
<span class="x">哈哈</span>
<p class="x">春眠不觉晓</p>
</body>
</html>
5)、组合选择:$(.class1,#btn1,p,div) $('选择器1,选择器2,选择器3')
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
$('.class1,#btn1,p,div').css({
'backgroundColor':'red'
});
});
</script>
</head>
<body>
<input type="button" name="name" value="button" id="btn1"/>
<p class="class1">test</p>
<p class="class1">test</p>
<p class="class1">test</p>
<p>test</p>
<p>test</p>
<p>test</p>
<div>div1</div>
<div>div1</div>
<div class="class1">div1</div>
<div class="class1">div1</div>
</body>
</html>
6)、层次选择器:
I、后代选择器:$('选择器1 选择器2')选择器之间用空格隔开,选取的是选择器1下面的所有的选择器2
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
//选取页面上所有的p元素
$('p').css('backgroundColor', 'red');
//选取所有div1下的p元素
$('#div1 p').css('backgroundColor', 'yellow');
//选取页面上所有div下的p元素
$('div p').css('backgroundColor', 'blue');
});
</script>
</head>
<body>
<div id="div1">
<p>11111111111111</p>
<p>22222222222222</p>
<p>33333333333333</p>
<p>44444444444444</p>
</div>
<p>55555555555</p>
<div>
<p>11111111111111</p>
<p>22222222222222</p>
<p>33333333333333</p>
<p>44444444444444</p>
</div>
</body>
</html>
II、子元素选择器:$('选择器1 > 选择器2'),选取的是选择器1下直接子元素选择器2
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
//选取body下的直接子元素span
$('body > span').css({
'font-size': '30px',
'backgroundColor': 'pink'
});
});
</script>
</head>
<body>
<span>
我是body下的span
</span>
<div>
<span>我是div下的span</span>
</div>
<p><span>我是p下的span</span></p>
</body>
</html>
III、相邻元素选择器(必须是同级元素):$('选择器1 + 选择器2'),取得是紧跟着选择器1后面的一个选择器2(下一个元素如果不是选择器2,中间只要隔开了就取不到了,必须是紧邻),等价于$('选择器1').next('选择器2')
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
$('div + p').css('backgroundColor','red');
});
</script>
</head>
<body>
<div>div1</div><p>春眠不觉晓</p><p>处处闻啼鸟</p><p>夜来风雨声</p><p>花落知多少</p>
</body>
</html>
IV、相邻选择器(必须是同级元素):$('选择器1 ~ 选择器2'),取得是选择器1后面的所有选择器2(选择器1和选择器2之间可以允许有间隔),
等价于$('选择器1').nextAll('选择器2')
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
$('div ~ p').css('backgroundColor', 'red');
});
</script>
</head>
<body>
<div>div1</div><p>春眠不觉晓</p><p>处处闻啼鸟</p><p>夜来风雨声</p><p>花落知多少</p>
</body>
</html>
V、其它选择器:
$('选择器1').next()=$('选择器1 + *');选择器1的下一个任意兄弟(同级)元素
$('选择器1').nextAll()=$('选择器1 ~ *');选择器1的后面的所有任意兄弟(同级)元素
$('选择器1').prev('选择器2');选择器1前面的一个兄弟(同级)选择器2
$('选择器1').prev();选择器1前面的一个兄弟(同级)任意元素
$('选择器1').prevAll('选择器2');选择器1前面的所有兄弟(同级)选择器2
$('选择器1').prevAll();选择器1前面的所有兄弟(同级)任意元素
$('选择器1').siblings('选择器2');除了选择器1的所有兄弟(同级)选择器2
$('选择器1').siblings();除了选择器1的所有兄弟(同级)任意元素
VI、选择器练习:有些方法是会破坏链式编程的链的,比如:next(),nextAll,prev(),prevAll(),siblings(),无参数的text()、val()、html()
一旦链式编程的链被破坏之后可以通过end()方法来修复。
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
//给li注册鼠标移上事件,移上的li背景色变红其余变白
//再给li注册单击事件,点击的li前面的li变绿,之后的变橘黄
//在单击事件的时候,prevAll()方法会破坏链式编程的链(prevAll方法返回的是前面所有的li对象,不是当前点击的对象),
//所以要调用一下end()方法来修复链(end()方法的作用就是返回最近点击的那个对象)
$('#u1 li').mouseover(function () {
$(this).css('backgroundColor', 'red').siblings('li').css('backgroundColor','');
}).click(function () {
$(this).prevAll().css('backgroundColor', 'green').end().nextAll().css('backgroundColor','orange');
});
});
</script>
</head>
<body>
<ul id="u1">
<li>大天狗</li>
<li>茨木</li>
<li>酒吞</li>
<li>妖刀</li>
</ul>
</body>
</html>
jQuery实现五角星评分
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
//1、给td设置样式
//2、注册鼠标移上事件,当鼠标移上,当前以及之前为★,之后为☆
//3、注册鼠标移出事件,当鼠标移出,所有都为☆,属性为isclicked=isclicked的及之前的为★
//4、给每个td添加一个属性score,分别为10,20,30,40,50
//5、给每个td注册一个单击事件,当单击某个td就给这个td添加一个isclicked属性,其余的td删除isclicked属性,然后将这个td的score属性的值给pscore
$('#tb1 td').css({
'width': '50px',
'height': '50px',
'color': 'red',
'font-size': '50px',
'cursor':'pointer'
}).mouseover(function () {
$(this).text('★').prevAll().text('★').end().nextAll().text('☆');
}).mouseout(function () {
$('#tb1 td').text('☆');
$('#tb1 td[isclicked=isclicked]').text('★').prevAll().text('★');
}).attr('score', function (index) {
return (index + 1) * 10;
}).click(function () {
$(this).attr('isclicked', 'isclicked').siblings().removeAttr('isclicked');
$('#pscore').text($(this).attr('score'));
});
});
</script>
</head>
<body>
<p id="pscore"></p>
<table id="tb1" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
☆
</td>
<td>
☆
</td>
<td>
☆
</td>
<td>
☆
</td>
<td>
☆
</td>
</tr>
</table>
</body>
</html>
7、jQuery可以链式编程和隐式迭代
为什么可以链式编程呢?因为jQuery对象的方法默认在执行完毕都有一个返回值即对象本身(return this),所以可以进行链式编程8、attr()和prop()
attr:是attribute的简称,表示的是’属性‘的意思,具体是表示文档节点的属性,在获取和设置自己定义的属性的时候用
prop:是proprety的简称,表示的也是‘属性’的意思,具体是表示js对象的属性,在获取和设置js dom对象的原生的属性的时候用,通过prop获取的值是经过计算的,不是直接在网页中看到的属性的值。
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
//全选
$('#btn1').click(function () {
$('input[type=checkbox]').attr('checked', true);
$('input[type=checkbox]').prop('checked', true);
});
//全不选
$('#btn2').click(function () {
$('input[type=checkbox]').attr('checked', false);
$('input[type=checkbox]').prop('checked', false);
});
//反选
$('#btn3').click(function () {
//通过遍历来设置
$.each($('input[type=checkbox]'), function (k, v) {
$(v).attr('checked', !$(v).attr('checked'));
$(v).prop('checked', !$(v).prop('checked'));
});
//$('input[type=checkbox]').attr('checked', function (index, attr_value) {
// return !attr_value;
//});
});
});
</script>
</head>
<body>
<input type="button" name="name" value="全选" id="btn1" />
<input type="button" name="name" value="全不选" id="btn2" />
<input type="button" name="name" value="反选" id="btn3" />
<input type="checkbox" name="name" value="" id="ch1" />
<input type="checkbox" name="name" value="" id="ch2" />
<input type="checkbox" name="name" value="" id="ch3" />
<input type="checkbox" name="name" value="" id="ch4" />
</body>
</html>
8、jQuery对象就是一个dom对象的集合,所以可以通过索引直接访问其中的任何一个对象,并且返回的就是dom对象
9、通过jQuery来操作类样式:
1)、获取类样式:hasClass('类样式');获取到了反回true,否则为false。
2)、追加类样式:addClass('类样式');不对对象原本应用的类样式有影响,直接追加给对象
3)、移出类样式:removeClass('类样式');移出指定的类样式
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
$('#btn').click(function () {
//1、判断是否应用了某个样式
//2、如果存在移除某个类样式
//3、如果不存在追加某个类样式
if ($('body').hasClass('closeLingt')) {
$('#btn').val('关灯');
$('body').removeClass('closeLingt');
} else {
$('body').addClass('closeLingt');
$('#btn').val('开灯');
}
});
});
</script>
<style type="text/css">
.closeLingt {
background-color:black;
}
</style>
</head>
<body>
<input type="button" name="name" value="关灯" id="btn" />
</body>
</html>
4)、自动设置类样式:toggleClass('类样式');方法自己判断是否有某个类样式,如果有就移除这个类样式,没有就追加这个类样式。
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
$('#btn').click(function () {
$('body').toggleClass('closeLingt');
if ($('#btn').val() == '开灯') {
$('#btn').val('关灯');
} else {
$('#btn').val('开灯');
}
});
});
</script>
<style type="text/css">
.closeLingt {
background-color:black;
}
</style>
</head>
<body>
<input type="button" name="name" value="关灯" id="btn" />
</body>
</html>
10、常用的过滤器:使用冒号将标签和过滤器隔开,中间没有空格
1)、:first ---取第一个
2)、:last---取最后一个
3)、:eq(n)---取第n个
4)、:gt(n)---取大于n的
5)、:lt(n)---取小于n的
6)、:not(类样式)---取除了某中类样式的
7)、:header---取所有的h标签
8)、:even---取偶数行(这里的偶数指的是索引)
9)、:odd---取奇数行(这里的奇数指的是索引)
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
$('#btn').click(function () {
//$('p').css('backgroundColor', 'red');//给所有的p标签设置背景色
//$('p:first').css('backgroundColor','red');//给第一个p标签设置背景色
//$('p:last').css('backgroundColor', 'red');//给最后一个p标签设置背景色
//$('p:eq(2)').css('backgroundColor', 'red');//给第n个p标签设置背景色,n表示p标签的索引
//$('p:gt(2)').css('backgroundColor', 'red');//给索引大于2的p标签设置背景色,gt表示大于的意思
//$('p:lt(2)').css('backgroundColor', 'red');//给索引小于2的p标签设置背景色,lt表示小于的意思
//$('p:not(.cls1)').css('backgroundColor', 'red');//给除了应用了cls1样式的p标签设置背景色
//$(':header').css('backgroundColor', 'red');//给页面上所有的h标签设置背景色
});
});
</script>
</head>
<body>
<input type="button" name="name" value="button" id="btn" />
<h1>hhhhhhhhhhh</h1>
<h2>hhhhhhhhhhh</h2>
<h3>hhhhhhhhhhh</h3>
<h4>hhhhhhhhhhh</h4>
<h5>hhhhhhhhhhh</h5>
<h6>hhhhhhhhhhh</h6>
<p>1111111111111</p>
<p class="cls1">1111111111111</p>
<p>1111111111111</p>
<p>1111111111111</p>
<p class="cls1">1111111111111</p>
<p class="cls1">1111111111111</p>
<p>1111111111111</p>
</body>
</html>
10)、选择器练习
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
$('#btn').click(function () {
//点击按钮表格隔行变色,奇红偶黄
$('#tb1 tr:even').css('backgroundColor', 'red');//索引为偶数在页面上显示出来才是表格的奇数行
$('#tb1 tr:odd').css('backgroundColor', 'yellow');//索引为奇数在页面上显示出来才是表格的偶数行
//表格前三行字体为粗体
$('#tb1 tr:lt(3)').css('font-weight','bolder');
});
//鼠标移到的行变成黄色,其余行变为蓝色
$('#tb1 tr').mouseover(function () {
$(this).css('backgroundColor', 'yellow').siblings().css('backgroundColor','blue');
});
});
</script>
</head>
<body>
<input type="button" name="name" value="button" id="btn" />
<table border="0" cellpadding="0" cellspancing="0" id="tb1">
<tr><td>姓名</td><td><input type="text" id="txt1" /></td></tr>
<tr><td>学号</td><td><input type="text" id="txt2" /></td></tr>
<tr><td>语文</td><td><input type="text" id="txt3" /></td></tr>
<tr><td>数学</td><td><input type="text" id="txt4" /></td></tr>
<tr><td>物理</td><td><input type="text" id="txt5" /></td></tr>
<tr><td>化学</td><td><input type="text" id="txt6" /></td></tr>
<tr><td>生物</td><td><input type="text" id="txt7" /></td></tr>
<tr><td>英语</td><td><input type="text" id="txt8" /></td></tr>
</table>
</body>
</html>
11)、$('选择器',this)或者$('选择器',$(this))表达的意思一模一样,this表示的是在一定范围内获取选择器选择的对象
1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 5 <title></title> 6 <script src="jQuery/scripts/jQuery-3.2.1.js"></script> 7 <script type="text/javascript"> 8 $(function () { 9 //设置每个单元格的样式 10 $('#tb1 td').css({ 11 'width': '50px', 12 'height': '30px', 13 'text-align':'center' 14 }); 15 //给tb1下的所有行注册一个单击事件 16 $('#tb1 tr').click(function () { 17 //将所有td的背景色设为默认 18 $('#tb1 td').css('backgroundColor', ''); 19 //设置当前点击行的偶数(索引为奇数)单元格为黄色 20 $('td:odd', this).css('backgroundColor','yellow');//这里的this表示的是‘当前行’这么个范围,也可以写成$(this) 21 //设置当前点击行的奇数(索引为偶数)单元格为红色 22 $('td:even', this).css('backgroundColor','red'); 23 }); 24 }); 25 </script> 26 </head> 27 <body> 28 <table id="tb1" border="1" cellpadding="2" cellspancing="2"> 29 <tr> 30 <td>AAA</td> 31 <td>AAA</td> 32 <td>AAA</td> 33 <td>AAA</td> 34 <td>AAA</td> 35 </tr> 36 <tr> 37 <td>AAA</td> 38 <td>AAA</td> 39 <td>AAA</td> 40 <td>AAA</td> 41 <td>AAA</td> 42 </tr> 43 <tr> 44 <td>AAA</td> 45 <td>AAA</td> 46 <td>AAA</td> 47 <td>AAA</td> 48 <td>AAA</td> 49 </tr> 50 <tr> 51 <td>AAA</td> 52 <td>AAA</td> 53 <td>AAA</td> 54 <td>AAA</td> 55 <td>AAA</td> 56 </tr> 57 <tr> 58 <td>AAA</td> 59 <td>AAA</td> 60 <td>AAA</td> 61 <td>AAA</td> 62 <td>AAA</td> 63 </tr> 64 <tr> 65 <td>AAA</td> 66 <td>AAA</td> 67 <td>AAA</td> 68 <td>AAA</td> 69 <td>AAA</td> 70 </tr> 71 </table> 72 </body> 73 </html>
11、属性过滤选择器
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
//1、选取所有name为txt1的元素
//$('input[name=txt1]').css('backgroundColor', 'red');
//2、选取所有具有name属性的input
//$('input[name]').css('backgroundColor', 'red');
//3、选取具有name属性的元素
//$('body *[name]').css('backgroundColor', 'red');
//4、选取name属性为txt1的元素
//$('body [name = txt1]').css('backgroundColor', 'red');
//5、选取页面上具有name属性,且name属性以a开头
//$('body *[name^=a]').css('backgroundColor', 'red');
//6、选取页面上具有name属性,且name属性以a结尾
//$('body *[name$=a]').css('backgroundColor', 'red');
//7、选取页面上具有name属性,且name属性为空的
//$('body *[name=""]').css('backgroundColor', 'red');
//8、选取页面上具有name属性,且name属性包含a
//$('body *[name*=a]').css('backgroundColor', 'red');
//9、选取页面上name属性不等于txt6(没有name属性的也会被选择)
//$('body *[name!=txt6]').css('backgroundColor', 'red');
//10、选取具有多个属性的元素
$('body *[name][id][value]').css('backgroundColor', 'red');
});
</script>
</head>
<body>
<input type="text" name="txt1" value="" id="t1" />
<input type="text" name="txt2a" value="" />
<input type="text" name="atxt3" value="" />
<input type="text" name="txt4a" value="" />
<input type="text" name="atxt5" value="" />
<input type="text" name="txt6" value="" />
<input type="text" name="" value="" />
<input type="text" value="" />
<input type="text" name="123a321" value="" />
<input type="text" name="123ab321" value="" />
<textarea name="txt1"></textarea>
</body>
</html>
12、属性 表单过滤器
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
//1、选取页面上所有被禁用的元素
//$(':disabled').css('backgroundColor', 'red');
//2、选取页面上所有没被禁用的元素
//$(':enabled').css('backgroundColor', 'red');
//3、选取form1下的所有被禁用的元素
//$('#form1 :disabled').css('backgroundColor', 'red');
//4、选取form1下的所有没被禁用的元素
//$('#form1 :enabled').css('backgroundColor', 'red');
//5、选取所有没被禁用的input标签
//$('input:enabled').css('backgroundColor', 'red');
//6、单击按钮,获取所有被选中的checkbox或radio
//这里不知道为什么实现不了
$('#btn').click(function () {
$(':not(:true)').css('border', '1px solid blue');
});
//获取被选中的option
$('#btn1').click(function () {
$(':selected').text(function (key,value) {
return '★'+value+'★';
});
$('select :not(:selected)').text(function (key, value) {
return '☆' + value + '☆';
});
});
});
</script>
</head>
<body>
<input type="button" name="name" id="btn1" value="button" />
<select>
<option value="value">辽宁</option>
<option value="value">辽宁1</option>
<option value="value">辽宁2</option>
<option value="value">辽宁3</option>
</select>
<input type="button" name="name" id="btn" value="button" />
<div>
<input type="checkbox" name="name" value="" />
<input type="checkbox" name="name" value="" />
<input type="radio" name="name" value="" />
<input type="checkbox" name="name" value="" />
<input type="radio" name="name" value="" />
</div>
<form id="form1" action="/" method="post">
<input type="text" name="name" value="" disabled="disabled"/>
<input type="text" name="name" value="" />
<input type="text" name="name" value="" />
<input type="button" name="name" value="button" disabled="disabled"/>
<input type="button" name="name" value="button" />
<input type="button" name="name" value="button" disabled="disabled"/>
<input type="button" name="name" value="button" />
</form>
<p>----------------------------------------------------------------------</p>
<input type="text" name="name" value="" disabled="disabled"/>
<input type="text" name="name" value="" />
<input type="text" name="name" value="" />
<input type="button" name="name" value="button" disabled="disabled"/>
<input type="button" name="name" value="button" />
<input type="button" name="name" value="button" disabled="disabled"/>
<input type="button" name="name" value="button" />
</body>
</html>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
//为每个checkbox注册单击事件
$('input[type=checkbox]').click(function () {
//1\获取当前被选中的
var chks = $('input[type=checkbox]:checked');
//2获取个数
var n = chks.length;
//3获取每个value
var names = [];
$.each(chks, function (k,chkObj) {
names[names.length]=$(chkObj).val();
});
//4显示到p中
$('#pmsg').text('共选中了'+n+'项,分别是:'+names);
});
});
</script>
</head>
<body>
<input type="checkbox" name="name" value="鼠" />鼠
<input type="checkbox" name="name" value="牛" />牛
<input type="checkbox" name="name" value="猴" />猴
<input type="checkbox" name="name" value="鸡" />鸡
<p id="pmsg">
共选择了0项,分别是:
</p>
</body>
</html>
13、jQuery动态创建元素
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
$('#btn').click(function () {
//追加到元素后面
//$('<a href="http://www.baidu.com">百度</a>').appendTo('#div1');
//$('#div1').append('<a href="http://www.baidu.com">百度</a>');
//插入到前面
//$('#div1').prepend('<a href="http://www.baidu.com">百度</a>');
//插入到div1前面
$(('<a href="http://www.baidu.com">百度</a>')).insertBefore('#div1');
//插入到div1后
$(('<a href="http://www.baidu.com">百度</a>')).insertAfter('#div1');
});
});
</script>
<style type="text/css">
#div1 {
width:200px;
height:200px;
border:1px solid blue;
}
</style>
</head>
<body>
<input type="button" name="name" value="button" id="btn" />
<div id="div1">
adasd
</div>
</body>
</html>
jQuery实现属性选择器
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
$(':button[value=">>"]').click(function () {
$('#s1 option').appendTo('#s2');
});
$(':button[value=">"]').click(function () {
$('#s1 option:selected').appendTo('#s2');
});
$(':button[value="<<"]').click(function () {
$('#s2 option').appendTo('#s1');
});
$(':button[value="<"]').click(function () {
$('#s2 option:selected').appendTo('#s1');
});
});
</script>
<style type="text/css">
select {
width:200px;
height:200px;
border:1px solid blue;
}
</style>
</head>
<body>
<select id="s1" multiple="multiple">
<option>新增</option>
<option>修改</option>
<option>删除</option>
<option>查询</option>
</select>
<input type="button" name="name" value="<<" />
<input type="button" name="name" value="<" />
<input type="button" name="name" value=">>" />
<input type="button" name="name" value=">" />
<select id="s2" multiple="multiple">
</select>
</body>
</html>
jQuery动态创建表格
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
var arrs = {
'大天狗': 'datiangou',
'妖刀姬': 'yaodaoji',
'妖刀姬1':'yaodaoji1'
};
$(function () {
$('#btn1').click(function () {
var tbObj = $('<table border="1"></table>').appendTo('body');
for (var key in arrs) {
$('<tr><td>' + key + '</td><td>' + arrs[key] + '</td></tr>').appendTo(tbObj);
}
});
});
</script>
</head>
<body>
<input type="button" id="btn1" value="动态创建表格" />
</body>
</html>
14、empty和remove
empty()方法:删除元素内部
remove()方法:连带自己一起删除
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
$('#btn1').click(function () {
$('#div1').empty();
});
$('#btn2').click(function () {
$('#div1').remove();
});
});
</script>
<style type="text/css">
#div1 {
width:100px;
height:200px;
border:1px solid blue;
}
</style>
</head>
<body>
<input type="button" name="name" id="btn1" value="empty" />
<input type="button" name="name" id="btn2" value="remove" />
<div id="div1">
<a></a><p>sdads</p>
</div>
</body>
</html>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
var sec = 4;
var intervalId = setInterval(function () {
if (sec > 0) {
$('#btn').val('倒计时' + sec + '秒');
sec--;
} else {
$('#btn').val('同意').prop('disabled',false);
}
}, 1000);
});
</script>
</head>
<body>
<input type="button" name="name" id="btn" value="倒计时5秒" disabled="disabled" />
</body>
</html>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
$('#btn1').click(function () {
$('<tr><td>' + $('#txtName').val() + '</td><td>' + $('#txtAge').val() + '</td><td><input onclick="deleteCurrentRow(this);" type="button" value="删除"/></td></tr>').appendTo('#tbody1');
});
});
function deleteCurrentRow(current) {
//先拿到当前点的这一行,current代表的就是button按钮,它的父节点就是th,th的父节点就是tr。
var tr = current.parentNode.parentNode;
$(tr).remove();
//然后再从tbody中把这一行删除出去
// document.getElementById('tbody1').removeChild(tr);
}
</script>
</head>
<body>
<fieldset style="width: 300px;">
<legend>新增人员信息</legend>
<p>
姓名:<input type="text" id="txtName" />
</p>
<p>
年龄:<input type="text" id="txtAge" />
</p>
<p>
<input type="button" name="name" id="btn1" value="新增" />
</p>
</fieldset>
<legend style="width: 300px; text-align: center;">人员信息表</legend>
<table border="1" cellpadding="0" cellspacing="0" style="width: 300px;">
<thead>
<tr>
<th>姓名
</th>
<th>年龄
</th>
<th>删除
</th>
</tr>
</thead>
<tbody id="tbody1">
</tbody>
</table>
</body>
</html>
15、节点替换和节点包裹
replaceWith(),替换,$('待替换元素').replaceWith('替换成的元素')
replaceAll(),替换,$('动态创建的一个元素').replaceAll('待替换元素')
wrap(),包裹,$('被包裹元素').wrap('将要用来包裹的某种标签'),在元素外包裹
wrapInner(),包裹,$('被包裹元素').wrapInner('将要用来包裹的某种标签'),在元素内包裹
wrapAll(),包裹,$('被包裹元素').wrapAll('将要用来包裹的某种标签'),将某类元素用一个标签来包裹
16、设置radio,checkbox的选中项
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script type="text/javascript">
$(function () {
$('#btn').click(function () {
$(':radio').val(['nan']);
$(':checkbox').val(['ppq','dlq']);
});
});
</script>
</head>
<body>
<input type="button" name="name" id="btn" value="button" />
<p>
<input type="radio" name="gender" value="nan" />男
<input type="radio" name="gender" value="nv" />女
<input type="radio" name="gender" value="baomi" />保密
</p>
<p>
<input type="checkbox" name="hb" value="dlq" />打篮球
<input type="checkbox" name="hb" value="tzq" />踢足球
<input type="checkbox" name="hb" value="ppq" />乒乓球
</p>
</body>
</html>
17、高亮选中函数

18、jQuery事件对象evt
evt.pageX 获取x坐标
evt.pageY 获取y坐标
evt.which 获取鼠标按下的值或键盘按下的值(具体看什么事件)
evt.stopPropagation() 取消事件冒泡
19、动画
show(3000),3秒显示出来
hide(3000),3秒隐藏完毕
slideUP(3000),3秒隐藏完毕(像窗帘一下拉上去)
slideDown(3000),3秒显示出来(像窗帘一下拉下来)
fadeIn(3000),3秒内淡入进来,显示
fadeOut(3000),3秒内淡出,隐藏
fadeTo(3000,0.3),3秒内淡入淡出到透明度为0.3止
toggle(3000),点击按钮如果当前是show,则为hide;反之为show
slideToggle(3000),点击按钮如果当前是slideUP,则为slideDown;反之为slideUP
fadeToggle(3000),点击按钮如果当前是fadeIn,则为fadeOut;反之为fadeIn
20、animate动画
animate({height:'10px',width:'10px'},1000);1秒内完成某个动画,花括号内是要完成的样式
$(':animated').stop();停止当前正在执行的动画,不会停止之后的动画
$(':animated').stop(true);停止当前正在执行的动画,并且清除之后队列中的动画
$(':animated').stop(true,true);//停止当前动画,并且将元素设置到当前动画正常结束时的位置,后续动画队列被清除
21、jQuery.cookie插件
1)、cookie是保存到本地硬盘里 2)、有一定安全性问题 3)、和浏览器相关 4)、经过浏览器写入到本地硬盘 5)、和域名相关
6)、是由浏览器在用户请求相同域名的时候自动携带一起来发起请求的
7)、因为cookie是写在客户端浏览器的,所以可以随时删除对应的cookie信息
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jQuery/scripts/jQuery-3.2.1.js"></script>
<script src="jQuery/scripts/jquery.cookie.js"></script>
<script type="text/javascript">
$(function () {
//1、检查是否有对应的cookie
if ($.cookie('uname')) {
$('#pmsg').text('欢迎您'+$.cookie('uname')+'!');
} else {
$('#pmsg').text('欢迎您,游客!');
}
$('#btn').click(function () {
var user_name = $('#txt').val();
$.cookie('uname', user_name, { expires: 7, path: '/', secure: false });
alert('写入成功!');
});
});
</script>
</head>
<body>
请输入姓名:<input type="text" name="name" value="" id="txt" /><input type="button" name="name" value="登陆" id="btn" />
<p id="pmsg">欢迎您,游客!</p>
</body>
</html>
22、jQuery各种插件的编写及使用
23、子页面刷新父页面的某个元素
$.parent.$('#spanHead').load($.parent.location.href + " #spanHead");

浙公网安备 33010602011771号