JavaScript 与 JQuery的关系
jQuery是JavaScript库中的一种,JavaScript库也可以叫JavaScript函数库
封装了很多js代码的一个js文件就是一个库。 Prototype、YUI(网络反响一般)、Dojo、ExtJS、jQuery等 都是JS库
jQuery 优点
写的少做的多,体积小,功能强大,链式编程,隐式迭代.插件丰富,开源,免费,兼容性强
jQuery的js文件
jquery-1.12.1.js      //正常的代码文件
jquery-1.12.1.min.js  //压缩的代码文件,上线的时候使用压缩的
//线上CDN
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/2.2.1/jquery.js"></script>
<script src="https://libs.baidu.com/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-2.1.1.min.js"></script>
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
JQuery中的顶级对象
JQuery -- 可以用$符号来代替
JQuery 的JS文件中的所有的东西都是jQuery或者都是$符号下的
- 如果想要使用jQuery中的属性或者方法,那么需要 
jQuery.属性、jQuery.xxx()来使用 - 简单的写法: 
$.属性$.方法 - 大多数情况下,jQuery中几乎都是方法,属性很少
 - JQuery中几乎把DOM中的事件都封装成了一个方法,在jQuery中几乎是把on去掉,然后变成方法了
 
//jQuery中注册事件
$("选择器").click(匿名函数);
//DOM中注册事件
document.getElementById("id属性值").onclick=匿名函数;
- 浏览器中的顶级对象:window,浏览器中和页面中所有的东西都是window的
 - 页面中的顶级对象:document,页面中某些东西是document
 
jquery加载
JS DOM中页面加载事件
window.onload = function () {
  console.log("好帅");
};
window.onload = function () {
  console.log("哈哈,我又变帅了");
};
/* 
哈哈,我又变帅了
*/
⚠️注意: 页面全部加载完毕才触发(标签,文字,图片,引入的文件)
JQuery中页面加载的事件
// 方法1
$(window).load(function () {
  console.log("第1种页面加载的事件");
});
// 方法2
// 这种采用的事件比方法1快,页面中的基本的元素加载后就触发
$(document).ready(function () {
  console.log("第2种页面加载的事件");
});
// 方法3
// 页面中基本的元素加载后就触发了
jQuery(function () {
  console.log("第3种页面加载的事件");
});
//简写
$(function(){ })
window.onload 和 $(function) 区别
window.onload只能定义一次,如果定义多次,后边的会将前边的覆盖掉$(function)可以定义多次的
jQuery对象和DOM对象互转的问题
jq -> js
jq对象[索引] 或者 jq对象.get(索引)
js -> jq
$(js对象)
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/2.2.1/jquery.js"></script>
<button id="btn">按钮</button>
<script>
  var btn = document.getElementById("btn");
  // DOM对象转jQuery对象
  $(btn).click(function () {
    alert("JQ注册点击事件");
  });
  // //错误的
  // btn.click(function () {
  //   alert("哈哈,小苏太帅了");
  // });
  //jQuery对象转DOM对象
  var btn2 = $("#btn");
  btn2[0].onclick = function () {
    alert("哈哈,我又变帅了");
  };
  // //错误的
  // btn2.onclick = function () {
  //   console.log("助教比小杨帅");
  // };
</script>
为什么要把DOM对象转jQuery对象,为什么又把jQuery对象转DOM对象?
- DOM操作很麻烦(兼容,一个功能写好多代码) -> 转jQuery对象,操作简单(使用jQuery中的方法或属性),不需要写兼容,
 - jQuery操作中有一些兼容没封装在jQuery中,转DOM对象,通过原生的js代码实现功能,如果后面都解决了,又想简单的写代码操作内容,再转回jQuery对象
 
⚠️注意: DOM对象调用jQuery的方法不能实现,必须是jQuery对象调用jQuery的方法
开关灯案例
DOM版本
<input type="button" id="btn" value="开灯">
<style>.cls{background-color: black;}</style>
<script>
  document.getElementById("btn").onclick = function () {
    var body = document.body;
    if (body.className == "cls") {
      body.className = "";
      this.value = "关灯";
    } else {
      body.className = "cls";
      this.value = "开灯";
    }
  };
</script>
JQ版本
<script src="https://libs.baidu.com/jquery/2.1.1/jquery.min.js"></script>
<input type="button" id="btn" value="开灯">
<style>
  .cls { background-color: black; }
</style>
<script>
  //方法1 
  // $("#btn").click(function () {
  //   if ($(this).val() == "开灯") {
  //     $("body").css("background-color", "black");
  //     $(this).val("关灯");
  //   } else {
  //     $("body").css("background-color", "gray");
  //     $(this).val("开灯");
  //   }
  // })
  //方法2
  $("#btn").click(function () {
    $("body").hasClass("cls") ? $(this).val("开灯") : $(this).val("关灯")
    $("body").hasClass("cls") ? $("body").removeClass("cls") : $("body").addClass("cls")
  });
</script>
      常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
 - 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
 
- 提示下载完但解压或打开不了?
 
- 找不到素材资源介绍文章里的示例图片?
 
- 模板不会安装或需要功能定制以及二次开发?
 
                    
    
发表评论
还没有评论,快来抢沙发吧!