首页 > 代码库 > 网站前端_Jquery-基础入门.0001.原生Js到后期封装库Jquery的过渡?
网站前端_Jquery-基础入门.0001.原生Js到后期封装库Jquery的过渡?
原生缺点:
1. JS的出现使得网页与用户之间实现了一种实时/动态/交互的关系,网页可以包含更多活跃的元素和精彩的内容
2. JS的弊端在于复杂的DOM对象,而JQuery封装了很多预定义的对象和使用函数简化了DOM操作,使得我们可以快速创建有高难度交互的富客户端页面,且兼容各大浏览器
简单介绍:
1. JQuery是一个优秀的JavaScript库,拥有强大的选择器,出色的DOM操作,可靠的事件处理,完善的兼容性和链式操作等功能,目前团队主要推核心库(JQuery)/UI(JQuery UI)/移动端(JQuery Mobile)
小试牛刀:
说明: 官网下载最新版,.min.js结尾的表示压缩版,自己开发学习可以使用未压缩版,需要明确的是在JQuery库环境下$就是JQuery简写形式,其实两个是等价的,以后开发中更多用的当然是$符号了~
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <title>前端开发</title> </head> <body> <script type="text/javascript" src="http://www.mamicode.com/js/jquery-3.1.1.min.js"></script> <script type="text/javascript"> // 常规写法 $(document).ready(function () { alert(‘Hello Word!‘) }) // 简写方式 $(function () { alert(‘Hello Word!‘) }) </script> </body> </html>
说明: 如上代码的$(document).ready(function(){})其实类似于传统JS中的window.onload方法,但是不同点一是前者只要等待DOM结构绘制完毕后执行,可能DOM元素关联的东西还没有加载完,而后者是必须等待所有的东西加载完毕才能执行,不同点二是前者支持同时编写多个,而后者编写多个就无法正确执行,不同点三是前者还支持简化写法$(function(){})
小小项目:
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <title>前端开发</title> <style type="text/css"> #menu { width: 300px; } .sub_menu { color: #ffffff; cursor: pointer; background-color: #555555; } div { padding: 0; margin: 1px 0; } div a { background: #888888; display: none; float: left; width: 300px; } .highlight { color: #ffffff; background-color: green; } </style> </head> <div id="menu"> <div class="sub_menu"> <span>第1章 - 认识JQuery</span> <a href="">1.1 - Javascript和Javascript库</a> <a href="">1.2 - 加入JQuery</a> <a href="">1.3 - 编写简单JQuery代码</a> <a href="">1.4 - JQuery对象和DOM对象</a> <a href="">1.5 - 解决JQuery和其它库的冲突</a> <a href="">1.6 - JQuery开发工具和插件</a> </div> <div class="sub_menu"> <span>第2章 - JQuery选择器</span> <a href="">2.1 - JQuery选择器是什么</a> <a href="">2.2 - JQuery选择器的优势</a> <a href="">2.3 - JQuery选择器</a> <a href="">2.4 - 应用JQuery改写示例</a> <a href="">2.5 - 选择器中的一些注意事项</a> <a href="">2.6 - 类似淘宝品牌列表的效果</a> <a href="">2.7 - 还有其它选择器吗?</a> </div> <div class="sub_menu"> <span>第3章 - JQuery中的DOM操作</span> <a href="">3.1 - DOM操作的分类</a> <a href="">3.2 - JQuery中的DOM操作</a> <a href="">3.3 - 某网站超链接和图片提示效果</a> </div> </div> <body> <script type="text/javascript" src="http://www.mamicode.com/js/jquery-3.1.1.min.js"></script> <script type="text/javascript"> $(‘.sub_menu‘).click(function () { // 对点击的对象添加highlight类 $(this).addClass(‘highlight‘) .children(‘a‘) .show() // 重新定位到上次操作的节点 .end() .siblings() .removeClass(‘highlight‘) .children(‘a‘) .hide() }) </script> </body> </html>
说明: 如上代码简单实现了一个手风琴的效果, 通过$(‘.sub_menu‘)定位到class属性包含.sub_menu的元素,并给其绑定一个click事件,回调函数内部$(this)其实就是触发回调函数的源对象,当点击时先通过.addClass(‘highlight‘).children(‘a‘).show()展开自己的子元素,然后通过.end()重新定位到上次操作的节点$(this),然后通过.siblings()..removeClass(‘highlight‘) .children(‘a‘).hide()让其它兄弟元素不高亮且子元素隐藏.
两种对象:
1. DOM对象是文档原生对象模型,只能通过原生的方法对其添加/删除/查询/修改,不能使用JQuery对象下的任何方法
2. JQuery对象是基于DOM对象封装的对象,可以通过JQuery特有的方法对齐添加/删除/查询/修改,不能使用DOM对象下的任何方法.
3. DOM对象变量声明常定义为var xm = 10,JQuery对象变量声明常定义为var $xm = 10,这个是约定俗称的规定.
4. DOM对象可以通过$()转换为JQuery对象,从此遍可以使用JQuery对象的方法,反之JQuery对象也可以通过[]或get()转换为DOM原生对象,从此便可使用DOM对象的方法
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8"> <title>前端开发</title> </head> <body> <div id="container"> asdasdas </div> <script type="text/javascript" src="http://www.mamicode.com/js/jquery-3.1.1.min.js"></script> <script type="text/javascript"> // 将JQuery对象转换为DOM对象 var $div = $(‘#container‘) var div = $div[0] console.log(div) var div = $div.get(0) // 将DOM对象转换为JQuery对象 var div = document.getElementById(‘container‘) var $div = $(div) console.log($div) </script> </body> </html>
本文出自 “@Can Up and No BB...” 博客,请务必保留此出处http://xmdevops.blog.51cto.com/11144840/1864658
网站前端_Jquery-基础入门.0001.原生Js到后期封装库Jquery的过渡?