jQuery兼容于所有主流浏览器, 包括Internet Explorer 6
jQuery 版本 2 以上不支持 IE6,7,8 浏览器。
如果需要支持 IE6/7/8,那么请选择1.9

您是否很疑惑为什么我们没有在 <script> 标签中使用 type="text/javascript" ? 在 HTML5 中,不必那样做了。JavaScript 是 HTML5 以及所有现代浏览器中的默认脚本语言!

文档就绪事件

jQuery 入口函数与 JavaScript 入口函数的区别: jQuery 的入口函数是在 html 所有标签(DOM)都加载之后,就会去执行。 JavaScript 的 window.onload 事件是等到所有内容,包括外部图片之类的文件加载完后,才会执行。

jQuery 入口函数:
$(document).ready(function(){// 开始写 jQuery 代码...});
$(function(){// 开始写 jQuery 代码...});
--------------------------
JavaScript 入口函数:
window.onload = function () {// 执行代码
}

jQuery 选择器

1.基本选择器$("#id")            //ID选择器
$("div")            //元素选择器
$(".classname")     //类选择器
$(".classname,.classname1,#id1")     //组合选择器2.层次选择器$("#id>.classname ")    //子元素选择器
$("#id .classname ")    //后代元素选择器
$("#id + .classname ")    //紧邻下一个元素选择器
$("#id ~ .classname ")    //兄弟元素选择器3.过滤选择器(重点)$("li:first")    //第一个li
$("li:last")     //最后一个li
$("li:even")     //挑选下标为偶数的li
$("li:odd")      //挑选下标为奇数的li
$("li:eq(4)")    //下标等于 4 的li(第五个 li 元素)
$("li:gt(2)")    //下标大于 2 的li
$("li:lt(2)")    //下标小于 2 的li
$("li:not(#runoob)") //挑选除 id="runoob" 以外的所有li3.2内容过滤选择器$("div:contains('Runob')")    // 包含 Runob文本的元素
$("td:empty")                 //不包含子元素或者文本的空元素
$("div:has(selector)")        //含有选择器所匹配的元素
$("td:parent")                //含有子元素或者文本的元素3.3可见性过滤选择器$("li:hidden")       //匹配所有不可见元素,或type为hidden的元素
$("li:visible")      //匹配所有可见元素3.4属性过滤选择器$("div[id]")        //所有含有 id 属性的 div 元素
$("div[id='123']")        // id属性值为123的div 元素
$("div[id!='123']")        // id属性值不等于123的div 元素
$("div[id^='qq']")        // id属性值以qq开头的div 元素
$("div[id$='zz']")        // id属性值以zz结尾的div 元素
$("div[id*='bb']")        // id属性值包含bb的div 元素
$("input[id][name$='man']") //多属性选过滤,同时满足两个属性的条件的元素3.5状态过滤选择器$("input:enabled")    // 匹配可用的 input
$("input:disabled")   // 匹配不可用的 input
$("input:checked")    // 匹配选中的 input
$("option:selected")  // 匹配选中的 option4.表单选择器$(":input")      //匹配所有 input, textarea, select 和 button 元素
$(":text")       //所有的单行文本框,$(":text") 等价于$("[type=text]"),推荐使用$("input:text")效率更高,下同
$(":password")   //所有密码框
$(":radio")      //所有单选按钮
$(":checkbox")   //所有复选框
$(":submit")     //所有提交按钮
$(":reset")      //所有重置按钮
$(":button")     //所有button按钮
$(":file")       //所有文件域

css选择器有哪些类型?

1、标签选择器(如:body,div,p,ul,li)。2、.类选择器(如:class="head",class="head_logo") 。3、ID选择器(如:id="name",id="name_txt")。4、全局选择器(如:*号)。5、.组合选择器(如:.head .head_logo,注意两选择器用空格键分开)。6、.继承选择器(如:div p,注意两选择器用空格键分开)。7、伪类选择器(如:就是链接样式,a元素的伪类,
4种不同的状态:link、visited、active、hover。)。

获得内容 - text()、html() 以及 val()

对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。具有 true 和 false 两个属性的属性,如 checked, selected 或者 disabled 使用prop()

jQuery - 添加元素

append() - 在被选元素的结尾插入内容
prepend() - 在被选元素的开头插入内容
after() - 在被选元素之后插入内容
before() - 在被选元素之前插入内容

append/prepend 是在选择元素内部嵌入。
after/before 是在元素外面追加。

jQuery - 删除元素

remove() - 删除被选元素(及其子元素)
empty() - 从被选元素中删除子元素

jQuery remove() 方法删除被选元素及其子元素。
jQuery empty() 方法删除被选元素的子元素。

jQuery - 获取并设置 CSS 类

addClass() - 向被选元素添加一个或多个类
removeClass() - 从被选元素删除一个或多个类
toggleClass() - 对被选元素进行添加/删除类的切换操作
css() - 设置或返回样式属性

思考题

var a = 7;
$(function(){alert(8)
})
alert(7)
结果//7,8

jquery与其他库相冲突

var $j = JQuery.noConflict();

// 如果table下tbody中的每一行下的每一列的checkbox没有禁选

$('#table>tbody>tr:has(td:has(:checkbox:enabled))').css('background':'red');

dom

var checks = document.getElementById('checks')alert(checks.checked)

jquery

$(obj).is(':checked')?alert(true):alert(false);
$('.list>a').click(function(){$(this).addClass('current').next().show().parent().siblings().children('a').removeClass('current').next().hide();return false;})

jquery转dom 对象

var rc = $('#rc');var rcs = rc.get(0)var rcs = rc[0];alert(rcs.innerHTML)

dom转jquery

var op = document.getElementById('rc')alert($(op).text())

jquery 判断元素是否存在用下面的方法,而直接使用$("#rc")无法进行准确判断,因为它获取的永远是对象

if ($('#rc').length>0) {alert('yes')}

dom实现案例

var btn = document.getElementById('btn');btn.onclick=function () {var arr = new Array,checks = document.getElementsByName('check');for (var i = 0; i < checks.length; i++) {if(checks[i].checked){arr.push(checks[i].value)}}alert('选中的个数'+arr.length)}var legs = document.getElementById('tab')var tbody = legs.getElementsByTagName('tbody')[0]var tr = tbody.getElementsByTagName('tr')for (var i = 0; i <tr.length; i++) {if (i%2==0) {tr[i].style.color = 'red'}}

选择器–过滤选择器

基本过滤选择器

基数

$('div:even').css('background','red')

偶数

$('div:odd').css('background','green')

可见元素

$('div:visible').css('fontSize','25px')

filter内容过滤选择器

$('ul li').filter(":contains('nihaoss')").css('background','green')

表单过滤选择器

$('#dis:disabled').val('发生变化了')

注意加空格是—选取select里面选中的

alert($('select :selected').text())

选取其自身的selected

alert($('option:selected').text())// 同上
alert($('input:text').length)
如:$('#form :text').length

如何获取input

var legs = $('input[name=check]:checked').lengthalert(legs)

判断元素是否可见

if ($('#dis').is(':visible')) {alert('可见元素')}

操作dom

//dom-core//document.getElementById('de')....
//html-dom//element.src ...
//css-dom//element.style.color='red'...

动态插入节点

var ul = '<ul><li>1</li><li>2</li><li>3</li></ul>';//$('.div').append(ul); --向后//$(ul).appendTo($('.div'))$('.div').prepend(ul)//$(ul).prependTo('.div')//$('.div').after(ul)--------------------结构外部的追加到下一个兄弟节点//$('.div').before(ul)//$(ul).insertBefore('.div')

删除元素

// $('ul li:eq(0)').remove()--全删//detach()--也是删除,但是会保留元素的事件--不全删保留事件//empty()$('ul li:eq(2)').empty()//当前元素所有的后代元素清空

复制节点

典型的拖动商品到购物车

$(this).clone(true).appendTo('body');
//克隆元素如果是true绑定的事件一同复制

offset()方法

获取元素在当前视窗的相对偏移,即top,left 只对可见元素有效

属性操作

追加样式

 $("p").addClass('jk')

1、如果给一个元素添加多个class那么就等于合并了他们的样式

2、如果有不同的class设定了同一个属性值,则后者覆盖前者。

移除样式

$('p').removeClass('jk')

toggleClass

如果类名存在则删除它,如果类名不存在则添加它

 $('p').toggleClass('jk')

样式是否存在

 $('p').hasClass('jk')
等同于如下方法:$('p').is('.jk')

html-text-innerHTML

注意:

1、javascript中的innerText属性并不能在火狐浏览器下运行,而jQuery的text方法支持所有浏览器

val()

 this.defaultValue     //当前文本的默认值

遍历节点

children() 只考虑子元素,不考虑后代元素

next() 下一个相邻的同辈元素

prev() 上一个相邻同辈元素

siblings() 前后所有的同辈元素

parent() 父元素

parents() 返回多个父元素节点

closest() 同parents 类似 但,只返回匹配的第一个元素节点

dom操作案例

<p><a href="###" class="tooltip" title="这是我的超链接提示1">提示1</a></p><script src="jquery-1.8.2.min.js"></script><script>$(function(){var x = 10,y=20;$(' a.tooltip').hover(function(e){this.myTitle = this.titlethis.title = '';var div = '<div id="tooltip">'+this.myTitle+'</div>'$('body').append(div);$('#tooltip').css({'top':(e.pageY+y)+'px','left':(e.pageX+x)+'px'}).show('fast')},function(){this.title=this.myTitle;$('#tooltip').remove()})})</script>

jquery 事件

$(window).load(function(){}) 相当于 window.onload=function{}
$('.panel h2').bind('click',function(){if ($(this).next().is(':visible')) {$(this).next().hide()}else{$(this).next().show()}})

下面toggle 方法的实现方式 toggle 模拟鼠标连续点击事件

$('.panel h2').toggle(function(){//$(this).next().show()$(this).next().toggle()},function(){// $(this).next().hide()  == 如果元素是显示的就让其隐藏,隐藏的就让其显示$(this).next().toggle()})

事件冒泡

$('#span1').bind('click',function(e){alert('span')//e.stopPropagation()  //阻止冒泡return false     //return false 可以阻止冒泡和 默认行为})$('.wai').bind('click',function(){alert('wai')})

移除绑定事件

$('#span').bind('click',myfun = function(){alert(1)}).bind('click',myfun2 = function(){alert(2)})$('.panel h2').bind('click',function(){$('#span').unbind('click',myfun2)})

模拟事件

// $('#span').trigger('click')//触发自定义事件$('.btn').bind('my',function(e){alert('我的自定义'+e)})$('.btn').trigger('my',1)// $('input').trigger('focus')  自动获取焦点$('input').triggerHandler('focus')  .//只是执行事件

dom案列 动态切换展示##

*{margin: 0;padding:0;}img{width: 100px;height: 100px;}li{float: left;list-style: none;}.v_content{width: 400px;height: 138px;overflow: hidden;position: relative;}ul{position: absolute;left:0;}a{display: block;width: 100%;}.fl{float: left;}.fr{float: right;}.v_caption{width: 400px;}.v_show{margin: 0 auto;width: 400px;}.next{background-color: #fd5004;color:#fff;cursor: pointer;}.current{color:#fd5004;}

html

<div class="v_show"><div class="v_caption"><h2 class="cartion fl">卡通动漫</h2><div class="highlight_tip fl"><span class="current">1</span><span>2</span><span>3</span><span>4</span></div><div class="change_btn fl"><span class="prev">上一页</span><span class="next">下一页</span></div><em class="fr"><a href="###">更多></a></em></div><div class="v_content"><ul class="v_content_list"><li><a href="###"><img src="./img/img-1.jpg" alt=""></a><h4><a href="###">海贼王1</a></h4><span>播放:<em>28,267</em></span></li><li><a href="###"><img src="./img/img-2.jpg" alt=""></a><h4><a href="###">海贼王1</a></h4><span>播放:<em>28,267</em></span></li><li><a href="###"><img src="./img/img-3.jpg" alt=""></a><h4><a href="###">海贼王1</a></h4><span>播放:<em>28,267</em></span></li><li><a href="###"><img src="./img/img-4.jpg" alt=""></a><h4><a href="###">海贼王1</a></h4><span>播放:<em>28,267</em></span></li><li><a href="###"><img src="./img/img-5.jpg" alt=""></a><h4><a href="###">海贼王2</a></h4><span>播放:<em>28,267</em></span></li><li><a href="###"><img src="./img/img-1.jpg" alt=""></a><h4><a href="###">海贼王2</a></h4><span>播放:<em>28,267</em></span></li><li><a href="###"><img src="./img/img-5.jpg" alt=""></a><h4><a href="###">海贼王2</a></h4><span>播放:<em>28,267</em></span></li><li><a href="###"><img src="./img/img-1.jpg" alt=""></a><h4><a href="###">海贼王2</a></h4><span>播放:<em>28,267</em></span></li><li><a href="###"><img src="./img/img-1.jpg" alt=""></a><h4><a href="###">海贼王3</a></h4><span>播放:<em>28,267</em></span></li><li><a href="###"><img src="./img/img-2.jpg" alt=""></a><h4><a href="###">海贼王3</a></h4><span>播放:<em>28,267</em></span></li><li><a href="###"><img src="./img/img-3.jpg" alt=""></a><h4><a href="###">海贼王3</a></h4><span>播放:<em>28,267</em></span></li><li><a href="###"><img src="./img/img-4.jpg" alt=""></a><h4><a href="###">海贼王3</a></h4><span>播放:<em>28,267</em></span></li><li><a href="###"><img src="./img/img-1.jpg" alt=""></a><h4><a href="###">海贼王4</a></h4><span>播放:<em>28,267</em></span></li><li><a href="###"><img src="./img/img-2.jpg" alt=""></a><h4><a href="###">海贼王4</a></h4><span>播放:<em>28,267</em></span></li><li><a href="###"><img src="./img/img-3.jpg" alt=""></a><h4><a href="###">海贼王4</a></h4><span>播放:<em>28,267</em></span></li><li><a href="###"><img src="./img/img-4.jpg" alt=""></a><h4><a href="###">海贼王4</a></h4><span>播放:<em>28,267</em></span></li></ul></div></div>

js

<script>$(function(){var page = 1,i = 4;var parent = $('.v_show');var v_show = parent.find('.v_content_list');var v_content = parent.find('.v_content');var v_width = v_content.width();var len = v_show.find('li').length;var page_count = Math.ceil(len/i)  //4$('span.next').click(function(){if (!v_show.is(':animated')) {if (page == page_count) {v_show.animate({left:'0px'},'slow')page = 1}else{v_show.animate({left:'-='+v_width},'slow')page++;}$('.highlight_tip span').eq((page-1)).addClass('current').siblings().removeClass('current')}})$('span.prev').click(function(){if (!v_show.is(':animated')) {if (page == 1) {v_show.animate({left:'-='+v_width*(page_count-1)},'slow')page = page_count}else{v_show.animate({left:'+='+v_width},'slow')page--;}$('.highlight_tip span').eq((page-1)).addClass('current').siblings().removeClass('current')}})})</script>

dom tab选项卡

*{margin: 0;padding:0;}.tab{width: 500px;border:6px solid #ff5004;height: 300px;margin: 0 auto;}ul{width: 100%;height: 30px;}li{width: 10%;float: left;line-height: 30px;height: 30px;background-color: green;color: #fff;margin-right: 10px;font-size: 24px;list-style: none;cursor: pointer;}li.selected{background-color: blue;}.tab_box{width: 100%;border-top: 5px solid #000;}.hide{display: none;}.hover{background-color: blue;}

html

<div class="tab"><ul class="tab_menu"><li class="selected">北京</li><li>上海</li><li>深圳</li></ul><div class="tab_box"><div>北京,这个的首都</div><div class="hide">上海,中国的第一个现代化城市</div><div class="hide">深圳,中国的改革开放试验城市</div></div></div>

js

<script>$(function(){$('.tab_menu li').bind('click', function(){$(this).addClass('selected').siblings().removeClass('selected');let index = $(this).index() //拿到当前li在所有的li中的下标$('.tab_box>div').eq(index).show().siblings().hide()}).hover(function(){$(this).addClass('hover')},function(){$(this).removeClass('hover')})4})</script>

表单form 应用

<!doctype html>
<html lang="zh">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0"><style>*{margin: 0;padding:0;}#comment{height: 150px;overflow-y:auto;resize: none;}</style>
</head>
<body><form action=""><div class="msg"><span class="bigger">放大</span><span class="smaller">缩小</span><span class="top">向上</span><span class="down">向下</span><textarea name="" id="comment">此文本框高度变化,多行文本变化此文本框高度变化,多行文本变化此文本框高度变化,多行文本变化此文本框高度变化,多行文本变化此文本框高度变化,多行文本变化此文本框高度变化,多行文本变化此文本框高度变化,多行文本变化此文本框高度变化,多行文本变化此文本框高度变化,多行文本变化此文本框高度变化,多行文本变化。</textarea></div></form><hr/></br><!-- form2 --><form action="">你爱好的运动是什么?</br><input type="checkbox" value="足球"/><input type="checkbox" value="篮球"/><input type="checkbox" value="羽毛球"/><input type="checkbox" value="乒乓球"/><input type="checkbox" id="checkAll" value="全 选/全不选" />全 选/全不选<input type="button" id="checkRev" value="反 选" /></form><form action=""><input type="text" class="require"><input type="submit" value="提交" id="send"></form><!-- table --><table><tr><td><input type="checkbox"></td><td>1</td><td>你好,长孙娜</td></tr><tr><td><input type="checkbox"></td><td>2</td><td>你好,娜</td></tr><tr><td><input type="checkbox" checked="true"></td><td>3</td><td>你好,长娜</td></tr></table><script src="jquery-1.8.2.min.js"></script><script>$(function(){var $comment = $('#comment')$('.bigger').click(function(){if (!$comment.is(':animated')) {if ($comment.height()<500) {$comment.animate({height:'+=50'},'slow')}}})$('.smaller').click(function(){if (!$comment.is(':animated')) {if ($comment.height()>50) {$comment.animate({height:'-=50'},'slow')}}})$('.top').click(function(){if (!$comment.is(':animated')) {$comment.animate({scrollTop:'-=50'},'slow')}})$('.down').click(function(){if (!$comment.is(':animated')) {$comment.animate({scrollTop:'+=50'},'slow')}})})// 复选框最基本的应用的就是,全选,反选。全不选$(function(){$('#checkAll').click(function(){$(':checkbox').prop('checked', this.checked)})$('#checkRev').click(function(){$(':checkbox').each(function(){this.checked = !this.checked})})})/*下拉框应用*/var options = $('#select option:selected')// 双击某个选项,添加给对方$('#slect').dblclick(function(){var options = $('option:selected', this)})/*表单验证*/$('form .require:input').blur(function(){if ($(this).is('#username')) {//...}else{console.log(1)}// if ($(this).is('#mail')) {}}).keyup(function(){$(this).triggerHandler('blur')}).focus(function(){// $(this).triggerHandler('blur')$(this).trigger('blur') //-----------------trigger 不仅会触发元素绑定事件,也会触发浏览器默认事件,而不会定位到文本框上})$('#send').click(function(){$('form :input').trigger('blur')})// $('tbody>tr:has(:checked)').addClass('on')// 另一种写法---装逼写法$('tbody>tr:has(:checked)')['addClass']('on');</script>
</body>
</html>

dom slice parseint 应用##

<!doctype html>
<html lang="zh">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0"><style>*{margin: 0;padding:0;}.msg{width: 500px;margin: 0 auto;}span{display: block;background-color: #fd5004;color:#fff;float: left;font-size: 26px;cursor: pointer;}.bigger{background-color: green;margin-right: 20px;}#para{clear: both;}</style>
</head>
<body><div class="msg"><div class="msg_caption"><span class="bigger">放大</span><span class="smaller">缩小</span></div><div><p id="para">这是一个明媚的早上,我吃过午饭前去招商银行办理公积金卡,下午不错洗洗衣服,开始写代码,人的一生就是不停的学习,很好,就是这样的。</p></div></div>    <script src="jquery-1.8.2.min.js"></script><script>$(function(){$('.msg_caption span').bind('click', function(){var fsz = $('#para').css('font-size')  //16pxvar parsFsz = parseInt(fsz, 10); // 第二位参数,取整let cName = $(this).attr('class');let unit = fsz.slice(2)  // 默认从0开始数,数到2后面的截取出来if (cName==='bigger') {parsFsz+=2}else{parsFsz-=2}$('#para').css('font-size',parsFsz+unit)})})</script>
</body>
</html>

table toggle :contains 应用

<!doctype html>
<html lang="zh">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0"><style>*{margin: 0;padding:0;}.on{background-color: #fd5004;}</style>
</head>
<body><label for="id">筛选</label><input type="text" id="id" value="2"><table width="500" border="1"><thead><tr><th>姓名</th><th>性格</th><th>住址</th></tr></thead><tbody><tr class="parent" id="row_01"><td colspan="3">其他设计组</td></tr><tr class="child_row_01"><td>王航</td><td>男</td><td>湖北</td></tr><tr class="child_row_01"><td>王2航</td><td>女</td><td>湖北</td></tr><tr class="child_row_01"><td>王航</td><td>男</td><td>湖北</td></tr><tr class="parent" id="row_02"><td colspan="3">其他设计组</td></tr><tr class="child_row_02"><td>王航</td><td>男</td><td>湖北</td></tr><tr class="child_row_02"><td>王2航</td><td>女</td><td>湖北</td></tr><tr class="child_row_02"><td>王航</td><td>男</td><td>湖北</td></tr><tr class="parent" id="row_03"><td colspan="3">其他设计组</td></tr><tr class="child_row_03"><td>王航</td><td>男</td><td>湖北</td></tr><tr class="child_row_03"><td>王2航</td><td>女</td><td>湖北</td></tr><tr class="child_row_03"><td>王航</td><td>男</td><td>湖北</td></tr></tbody></table><script src="jquery-1.8.2.min.js"></script><script>$(function(){$('.parent').click(function(){$(this).toggleClass('on').siblings('.child_'+this.id).toggle()})$('#id').keyup(function(){$('table tbody tr').hide().filter(":contains('"+( $(this).val() )+"')").show()}).keyup()})</script>
</body>
</html>

ajax 实例

<!doctype html>
<html lang="zh">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0"><style>*{margin: 0;padding: 0;}.form1{width: 500px;margin: 100px auto;}label{display: block;width: 100%;margin-bottom: 20px;}</style>
</head>
<body><input type="button" value="ajax提交" onclick="Ajax()"><div id="resTxt"></div><div id="load">加载中。。。。</div><hr/><form action="test.php" class="form1" method="post"><label>姓名:<input type="text" name="user"></label><label>内容:<textarea name="content" id=""></textarea></label><input type="submit" value="提交" name="button"></form><hr/><input type="button" value="$.getScript" id="getScript"><hr><input type="button" value="$.getJson" id="getJson"><div id="testjson"></div><hr><form action="" id="form2"><input type="checkbox" checked="true">12<input type="checkbox" checked="true">14<input type="radio">15<input type="radio">16<input type="submit" id="submit"></form><script src="jquery-1.8.2.min.js"></script><script>$(function(){/**ajax : 异步javascript XML*ajax  核心  XMLHttpRequest*load()  方法一般常用从服务器获取静态数据文件注意:get请求会将参数跟在URL后传递,post则是作为HTTP消息的实体内容发送给web服务器get通常不能大于2kb 数据会被浏览器缓存起来,会带来严重的安全性问题。$.ajax() 方法是jquery 最底层的Ajax对于表单提交数据多的情况下-----使用到序列化方法serialize()序列化数组----serializeArray()---返回json格式*/ $('form').submit(function(event){event.preventDefault()});$("form input[type='submit']").click(function(){var url = $('.form1').attr('action');var serialize  = $('.form1').serializeArray();console.log(serialize)$.post(url, serialize, function(res, status){if (status==200) {console.log(res)}})})})function Ajax(){// $('#resTxt').load('moduleHtml.html');$('#load').ajaxStart(function(){$(this).show()})$('#load').ajaxStop(function(){$(this).hide()})$('#resTxt').load('moduleHtml.html .tab_menu', function(res, status, XMLHttpRequest){console.log(res);console.log(status);}); //load 选择器 选择对应的class}$(function(){$('#getScript').click(function(){$.getScript('jquery.cookie.js', function(data){console.log(data)})})})$(function(){// $('#getJson').click(function(){//     $.getJSON('test.json', function(data){//      $('#testjson').empty();//         var html = '';//         $.each(data, function(index,item){//            console.log(index,item)//           html+='<div><h6>'//             +item['name']+'</h6><p>'//            +item['age']+'</p></div>';//          if (index ==2 ) {//               return false//          }//         })//        $('#testjson').html(html)//   })// })$('#getJson').click(function(){$.ajax({type: 'get',url:'test.json',dataType: 'json',success:function(data){$('#testjson').empty();var html = '';$.each(data, function(i, item){html+= '<div><h2>'+item['name']+'</h2><p>'+item['age']+'</p></div>';if (i == 1) {return false;}})$('#testjson').html(html)}})})})</script>
</body>
</html>

jquery.cookie.js 实战应用

<!doctype html>
<html lang="zh">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0"><link id="linkcss" rel="stylesheet" href="css/skin_01.css"><style>.select{background-color: #fff;font-size: 20px;}</style>
</head>
<body><ul class="color"><li id="skin_01">红色</li><li id="skin_02">绿色</li><li id="skin_03">橙色</li></ul>用户名:<input type="text" name='username' id="username" /><input type="checkbox" name='check' id='check' />记住我<script src="jquery-1.8.2.min.js"></script><script src="jquery.cookie.js"></script><script>$(function(){let $li = $('.color li');var cookie_skin = $.cookie('skinName');if (cookie_skin) {$('#'+cookie_skin).addClass('slected').siblings().removeClass('slected');$('#linkcss').attr('href','css/'+cookie_skin+'.css');}$li.click(function(){var id = $(this)[0].id$('#'+id).addClass('slected').siblings().removeClass('slected');$('#linkcss').attr('href','css/'+id+'.css');$.cookie('skinName', id, {path: '/', expires: 10});})})$(function(){var cookie_name = 'username';if ($.cookie(cookie_name)) {if ($.cookie(cookie_name) == 'null') {$('#username').val('')}else{$('#username').val($.cookie(cookie_name))}}$('#check').click(function(){if (this.checked) {$.cookie(cookie_name, $('#username').val(), {path: '/', expires: 10});}else{$.cookie(cookie_name, 'null', {path: '/'})}})})</script>
</body>
</html>

input placeholder 兼容写法

<!doctype html>
<html lang="zh">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0"><style>*{margin: 0;padding:0;}.focus{color:#999;}</style>
</head>
<body><input type="text" value="请输入商品名称"><script src="jquery-1.8.2.min.js"></script><script>$(function(){$('input[type="text"]').focus(function(){$(this).addClass('focus')if ($(this).val()===this.defaultValue) {$(this).val('')}}).blur(function(){$(this).removeClass('focus');if ($(this).val()==='') {$(this).val(this.defaultValue)}}).keyup(function(e){if (e.which == 13) {alert('提交表单')}})})</script>
</body>
</html>

jQuery 插件编写 dom##

<!doctype html>
<html lang="zh">
<head><meta charset="UTF-8"><title>tab</title><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0"><style>tbody>tr.odd{background-color: red;}tbody>tr.even{background-color: blue;}tbody>tr.selected{background-color: #fd5004;}</style>
</head>
<body><div class="red" style="color:red">NIKO4</div><hr><table border="1" id="table1"><thead><tr><th></th><th>1</th><th>2</th><th>3</th></tr></thead><tbody><tr><th><input type="checkbox"></th><th>lishijie</th><th>wangzi</th><th>juzi</th></tr><tr><th><input type="checkbox"></th><th>lishijie</th><th>wangzi</th><th>juzi</th></tr><tr><th><input type="checkbox"></th><th>lishijie</th><th>wangzi</th><th>juzi</th></tr><tr><th><input type="checkbox"></th><th>lishijie</th><th>wangzi</th><th>juzi</th></tr></tbody></table><table border="1" id="table2"><thead><tr><th></th><th>1</th><th>2</th><th>3</th></tr></thead><tbody><tr><th><input type="checkbox" checked="true"></th><th>lishijie</th><th>wangzi</th><th>juzi</th></tr><tr><th><input type="checkbox"></th><th>lishijie</th><th>wangzi</th><th>juzi</th></tr><tr><th><input type="checkbox"></th><th>lishijie</th><th>wangzi</th><th>juzi</th></tr><tr><th><input type="checkbox"></th><th>lishijie</th><th>wangzi</th>o<th>juzi</th></tr></tbody></table><script src="jquery-1.8.2.min.js"></script><script>//;(function($){})(jQuery)/*jQuery.extend 用来设置默认参数**********/var setting = { validate: false, limit: 5, name: 'lishijie'}var options = { validate: true, name: 'wangzi'}var newOptions = jQuery.extend(setting, options)  //console.log(newOptions);(function($){$.fn.extend({// 'color' :function(value){//  return this.css('color', value);// },'alertBgColor':function(options){options = $.extend({odd: 'odd',even: 'even',selected: 'selected'}, options);$('tbody>tr:odd', this).addClass(options.odd);$('tbody>tr:even', this).addClass(options.even);$('tbody>tr', this).click(function(){var hasSelected = $(this).hasClass(options.selected);$(this)[hasSelected? 'removeClass' : 'addClass'](options.selected).find(':checkbox').attr('checked', !hasSelected)})$('tbody>tr:has(:checked)', this).addClass(options.selected);return this //返回this , 使方法可链}})})(jQuery);$(function(){// $('.red').color('blue');$('#table2').alertBgColor({odd:'',even:'even', selected:'selected'}).find('th').css('color', 'green')})</script>
</body>
</html>

轮播图 实战##

<!doctype html>
<html lang="zh">
<head><meta charset="UTF-8"><title>banner</title><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0"><style>*{margin: 0;padding:0;}.fl{float: left;}.fr{float: right;}img{width: 100%;height: 100%;display: block;}.banner{width: 550px;height: 320px;margin: 0 11px 0 0 ;overflow: hidden;position: relative;}.banner img{position: absolute;top:0;left:0;}.banner div{position: absolute;bottom: 0;overflow: hidden;}.banner div a{background: #444;display: inline-block;color: #fff;float: left;height: 32px;margin-right: 1px;overflow: hidden;padding: 5px 15px;text-align: center;width: 79px;}.banner div a:hover{text-decoration: none;}.banner div a.dor{background-color: #fd5004;}#footer a.dors{background-color: #fd5004;}.banner div a em{cursor: pointer;display: block;height: 16px;overflow: hidden;width: 79px;}.banner .last{margin: 0;width: 80px;}#imgWrap{display: block;width: 100%;height: 100%;}</style>
</head>
<body><div class="banner"><a href="#nogo" id="imgWrap"><img src="./img/img-1.jpg" alt="1"><img src="./img/img-2.jpg" alt="2"><img src="./img/img-3.jpg" alt="3"><img src="./img/img-4.jpg" alt="4"></a><div class="footer"><a href="###1" class="dor"><em>相约情人节</em><em>全场199元</em></a><a href="###2"><em>相约情人节</em><em>全场199元</em></a><a href="###3"><em>相约情人节</em><em>全场199元</em></a><a href="###4" class="last"><em>相约情人节</em><em>全场199元</em></a></div></div>        <div id="footer"><a href="###1"><em>相约情人节</em><em>全场199元</em></a><a href="###2"><em>相约情人节</em><em>全场199元</em></a><a href="###3"><em>相约情人节</em><em>全场199元</em></a><a href="###4"><em>相约情人节</em><em>全场199元</em></a></div><script src="jquery-1.8.2.min.js"></script><script>$(function(){var imgRoll = $('.footer a');imgRoll.css('opacity','0.7');var len = imgRoll.length;var index = 0;var adTimer = null;imgRoll.mouseover(function(){index = imgRoll.index(this);showImg(index)}).eq(0).mouseover()  //-----------------------默认调用//划入停止动画 划出开始动画$('.banner').hover(function(){if (adTimer) {clearInterval(adTimer)}},function(){adTimer = setInterval(function(){showImg(index);index++;if (index==len) {index = 0;}},2500)}).trigger('mouseleave')  //-------hover 对应两个事件 mouseenter mouseleave 鼠标移出时调用第二事件$(document).on('hover','#footer a', function(){    //电商图片放大镜位置效果$(this).toggleClass('dors')})})//显示不同的幻灯片function showImg(index){var banner = $('.banner');var bannera = banner.find('.footer a')var newHref = bannera.eq(index).attr('href');$('#imgWrap').attr('href',newHref).find('img').eq(index).stop(true,true).fadeIn().siblings().fadeOut();bannera.removeClass('dor').css('opacity','0.7').eq(index).addClass('dor').css('opacity','1')}// jquery 截取图片后缀方法实例$(function(){var imgSrc = $('#imgWrap').find('img').attr('src');console.log(imgSrc)var i = imgSrc.lastIndexOf('.')console.log(i)var unit = imgSrc.substring(i)console.log(unit)})</script>
</body>
</html>

jquery 性能优化

  1. 缓存对象
  2. 如果打算在其他函数中使用jquery 对象,可以缓存到全局环境
  3. 循环数组尽量使用简单的for 会使代码运行的更快
  4. 循环dom 结束后再操作,比如结束后再追加
  5. 尽量使用原生js
<!doctype html>
<html lang="zh">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0"><style>*{margin: 0;padding:0;}ul li{list-style: none;}</style>
</head>
<body><ul><li>jijijihaoni</li><li>jijijihaoni</li><li>jijijihaoni</li><li>jijijihaoni</li></ul><input type="checkbox" checked="true"> 1<script src="jquery-1.8.2.min.js"></script><script>window.$my = {head: $('head'),body: $('body')}// jquery 性能优化/**  1. 缓存对象*  2. 如果打算在其他函数中使用jquery 对象,可以缓存到全局环境*  3. 循环数组尽量使用简单的for 会使代码运行的更快*  4. 循环dom 结束后再操作,比如结束后再追加*  5. 尽量使用原生js *///2var script = document.createElement("li");$my.body.append(script);$('ul').click(function(e){var targera = $(e.target)console.log(targera)var js = targera.get(0);js.style.color = 'red';this.style.backgroundColor = '#fd5004'})var cr = $('input:checkbox');var newCr = cr[0]if (newCr.checked) {alert(1)}</script>
</body>
</html>

返回页面顶部

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><style>.nav{margin-top: 600px;width:100%;border-right-color: goldenrod;height: 200px;}.content{margin-top: 1200px;width:100%;height: 300px;background-color:firebrick;}.go{width: 100%;height: 20px;background-color: gray;}</style>
</head>
<body><div class="nav"></div><div class="content"></div><div class="go">返回页面顶部</div><script src="jquery-1.8.2.min.js"></script><script>$(function(){$('.go').click(function(){$('body').scrollTo(500);return false;})})jQuery.fn.scrollTo = function(speed){var targetOffset = $(this).offset().top;$('html,body').stop().animate({scrollTop: targetOffset}, speed);return this;}</script>
</body>
</html>

自动隐藏 不再使用定时器

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>自动隐藏 不再使用定时器</title><style>.move{width: 100%;height: 200px;display: none;background-color: darkblue;}</style>
</head>
<body><div class="go">go</div><div class="move">hah</div><script src="jquery-1.8.2.min.js"></script><script>$(function(){$('.go').click(function(){$('.move').fadeIn(500).delay(3000).fadeOut(500)})})</script>
</body>
</html>

《锋利的 jQuery(第2版)》相关推荐

  1. ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  2. ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  3. 信息学奥赛真题解析(玩具谜题)

    玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...

  4. 信息学奥赛之初赛 第1轮 讲解(01-08课)

    信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...

  5. 信息学奥赛一本通习题答案(五)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  6. 信息学奥赛一本通习题答案(三)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  7. 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题

    第1章   快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章  素数 第 3 章  约数 第 4 章  同余问题 第 5 章  矩阵乘法 第 6 章 ...

  8. 信息学奥赛一本通题目代码(非题库)

    为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...

  9. 信息学奥赛一本通(C++版) 刷题 记录

    总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...

  10. 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离

    首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...

最新文章

  1. 阿里云https证书apache配置
  2. 网站关键词优化从这几方面下手效果会更好!
  3. 用MS SQL 语句修改表中字段类型
  4. 几个极品笑话,放松下心情
  5. Oracle数据库之SQL连接查询
  6. Visual Studio Online 的 FAQ:iPad 支持、自托管环境、Azure 账号等
  7. volatile理解了吗?
  8. C++类构造函数初始化列表及初始化成员变量的误区
  9. 漫步最优化四十二——Partan法
  10. JZOJ 1237. 餐桌
  11. 设计自己的ImageLoader图片加载框架
  12. 单机rust怎么设置白天_安卓单机游戏评测:侠盗猎车手3十周年版本
  13. 苹果手机微信怎么接龙_微信又更新了:群接龙怎么玩?文件如何备份?怎么发高清大视频?...
  14. 两个分数相加(结果最简)
  15. 1.4 极限的运算法则
  16. GB/T28181-2022图像抓拍规范解读及技术实现
  17. 白鹭引擎学习笔记(二)
  18. 【字符转换】——全角和半角转换
  19. [收藏]三国时代的十大遗言
  20. 关于apk安全检测的第三方在线网站

热门文章

  1. crashfix平台搭建
  2. onlyoffice的安装使用
  3. 光电收发管RPR220介绍
  4. Java 获取文件大小
  5. 【量化交易行情不够快?】一文搞定通过Win10 wsl2 +Ubuntu+redis+pickle实现股票行情极速读写
  6. centos 安装 宋体新宋体
  7. uniapp离线打包后APP出现未配置appkey
  8. hackthebox-tabby (LFI tomcat9 渗透 lxd 提权)
  9. 1000瓶水,哪一瓶有毒?
  10. Day32——122.买卖股票的最佳时机II 55. 跳跃游戏 45.跳跃游戏II +第二天复习