JQuery基础

1. JQuery包装集和Dom元素的区别.

     dom元素:

          var div = document.getElementById("testDiv"); 

     JQuery包装集:

          var jqDiv = $("#testDiv");

     dom元素转换为JQuery包装集:

          var jqDiv = $(div);

     JQuery包装集是一个集合, 是一个dom元素的集合.也就是说其中的每个元素都是dom元素.比如:

          var dom = $("#testDiv")[0];

          $("#testDiv").each(function(){

               alert(this);//this 是dom元素

               $(this).html("testDIv content"); // 通过$()将dom元素转换为JQuery包装集,才能调用JQuery的方法

          });

2. 选择器和过滤器的区别

     JQuery中的选择器分为选择器和过滤器两种. 选择器没有默认的范围, 而过滤器是必须有范围的. 比如

          $(".bgRed div"); //选中classname为bgRed的元素下的所有子孙div.

          $(".bgRed>div"); //选中classname为bgRed的元素的直接子节点中的div

     这种是选择器. 而下面这种是过滤器

          $("tr:first"); // 表格的第一行.

     过滤器的意思就是说, ":" 前面的是范围, 后面的是过滤条件, 然会结果和":"前面的是一种类型的元素. 而选择器不是这样

3. $(document).ready()即$() 与 window.onload()的区别

     winddow.onload() : 浏览器执行该函数是在构建完dom树之后, 并且是在所有图像及外部资源加载完成以后才执行. 这就导致如果某个外部资源加载有问题时, 函数中依赖对象未完成加载而出现的函数执行出现异常, 而导致页面不完整. 

     $() : 是在dom树构建完成以后, 图像及外部资源加载之前执行的. $() 可以在一个页面中绑定多个函数, 而window.onload却只能调用一个函数

4. 元素属性和dom属性的区别

     <img src="images/image.1.jpg" id="hibiscus" alt="Hibiscus" class="classA" />

     比如, class是元素属性. 实际在浏览器解析时,会将标签解析成dom对象, 将元素属性解析成dom属性. 在javascript中, 只能直接获取或设置dom属性.如果要设置上面的class则应该这样写:

     img1.className = "classB";

     在javascript中如果要获取元素属性, 要使用getAttribute, Jquery中则使用attr()

4. 操作元素属性

     $("img").attr("src"); //返回文档中第一个图像的src属性值:

     $("img").attr({ src: "test.jpg", alt: "Test Image" });//为所有图像设置src和alt属性:

     $("img").attr("src","test.jpg"); //为所有图像设置src属性:

     $("img").attr("title", function() { return this.src });//把src属性的值设置为title属性的值:

     $("img").removeAttr("src"); //将文档中图像的src属性删除,注意是删除属性值, 即将src属性值设为空

5. 存储数据的两种方式:

     a. 使用自定义的元素属性存储数据

          <div id="testDiv5" customer="customer data 1">获取自定义数据‐1</div> 

     在事件处理中获取数据:

          $("#testDiv5").bind("click", function(event) { alert($(event.ta

rget).attr("customer")); });

Image

     b. 使用脚本将数据传递给事件处理函数

     <div id="testDiv6">获取自定义数据‐2</div> 

     $("#testDiv6").bind("click", { customer: "customer data 2" }, fu

nction(event) { alert(event.data.customer) }); 

Image(1)

     注意,这里bind函数的定义:bind( type, [data], fn ), 中间是需要传送给fn的参数.

6. trigger( event, [data] ) 和 triggerHandler( event, [data] )的区别

     用于在程序中触发动作.主要区别是trigger会出发浏览器默认的动作, 而triggerHandler不会出发.

7. 多播委托

8. $().each() 和$.each()的区别

     $().each()  用于遍历Jquery对象. 而$.each()用于遍历数组和对象. 注意, each() 只能遍历, 无法改变返回后的对象. 如果要改变使用Jquery.map(array, callback);

原文地址:https://www.cnblogs.com/jeevan/p/3487341.html