我的jQuery学习笔记(持更)

js和jQuery的区别

1.原生JS和jQuery入口函数的加载模式不同
原生JS会等到DOM元素加载完毕,并且图片也加载完毕才会执行
jQuery会等到DOM元素加载完毕,但不会等到图片也加载完毕就会执行
2.原生的JS如果编写了多个入口函数,后面编写的会覆盖前面编写的
jQuery中编写多个入口函数,后面的不会覆盖前面的

入口函数

1.第一种写法
$(document).ready(function () {
alert(“hello lnj”);
});
2.第二种写法
jQuery(document).ready(function () {
alert(“hello lnj”);
});
3.第三种写法(推荐)
$(function () {
alert(“hello lnj”);
});
4.第四种写法
jQuery(function () {
alert(“hello lnj”);
});

补充
Jquery中$(document).ready()的作用类似于传统JavaScript中的window.onload方法,不过与window.onload方法还是有区别的。
1.执行时间

window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。
$(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。

2.编写个数不同

window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个
$(document).ready()可以同时编写多个,并且都可以得到执行

3.简化写法

window.onload没有简化写法
( d o c u m e n t ) . r e a d y ( f u n c t i o n ( ) ) 可 以 简 写 成 (document).ready(function(){})可以简写成 (document).ready(function())(function(){});

冲突问题

1.释放$的使用权

注意点:
释放操作必须在编写其它jQuery代码之前编写
释放之后就不能再使用$,改为使用jQuery
jQuery原理.noConflict();
2.自定义一个访问符号

var nj = jQuery.noConflict();        
nj(function () {
            		alert("hello lnj");       
            });

核心函数

// $();/jQuery原理();就代表调用jQuery的核心函数

    // 1.接收一个函数        
    $(function () { 
    alert("hello lnj");           
    
     // 2.接收一个字符串           
     // 2.1接收一个字符串选择器           
     // 返回一个jQuery对象, 对象中保存了找到的DOM元素            
     var $box1 = $(".box1");           
     var $box2 = $("#box2");            
     console.log($box1);            
     console.log($box2);           
    // 2.2接收一个字符串代码片段           
    // 返回一个jQuery对象, 对象中保存了创建的DOM元素            
         var $p = $("<p>我是段落</p>");            
         console.log($p);            
         $box1.append($p);           
         
      // 3.接收一个DOM元素           
      // 会被包装成一个jQuery对象返回给我们           
       var span =document.getElementsByTagName("span")[0];            
       console.log(span);           
       var $span = $(span);            
       console.log($span);        
           });
对象
  • 1.什么是jQuery对象
    jQuery对象是一个伪数组
  • 2.什么是伪数组?
    有0到length-1的属性, 并且有length属性
静态方法和实例方法
 <script>       
  // 1.定义一个类       
   function AClass() {   
        }        
   // 2.给这个类添加一个静态方法        
   // 直接添加给类的就是静态方法        
   AClass.staticMethod = function () {            
   	alert("staticMethod");        
   }       
    // 静态方法通过类名调用        
    AClass.staticMethod();
        
   // 3.给这个类添加一个实例方法        
   AClass.prototype.instanceMethod = function () {
               alert("instanceMethod");
 }        
   // 实例方法通过类的实例调用       
    // 创建一个实例(创建一个对象)        
    var a = new AClass();        
    // 通过实例调用实例方法        
    a.instanceMethod();    
    </script>
静态方法each方法

var arr = [1, 3, 5, 7, 9];
var obj = {0:1, 1:3, 2:5, 3:7, 4:9, length:5};
1.利用js的each静态方法遍历数组
第一个参数: 遍历到的元素
第二个参数: 当前遍历到的索引
注意点:原生的forEach方法只能遍历数组, 不能遍历伪数组

arr.forEach(function (**value**, **index**) {
	console.log(index, value);        
 });

2.利用jQuery的each静态方法遍历数组
第一个参数: 当前遍历到的索引
第二个参数: 遍历到的元素
注意点: jQuery的each方法是可以遍历伪数组的

$.each(arr, function (**index**, **value**) { 
	    console.log(index, value); 
});
静态方法map方法

var arr = [1, 3, 5, 7, 9];
var obj = {0:1, 1:3, 2:5, 3:7, 4:9, length:5};
1.利用原生JS的map方法遍历
第一个参数: 当前遍历到的元素
第二个参数: 当前遍历到的索引
第三个参数: 当前被遍历的数组
注意点:和原生的forEach一样,不能遍历的伪数组

arr.map(function(value , index , array){
	console.log(index , value , array);
});

第一个参数: 要遍历的数组
第二个参数: 每遍历一个元素之后执行的回调函数
回调函数的参数:
第一个参数: 遍历到的元素
第二个参数: 遍历到的索引
注意点:和jQuery中的each静态方法一样, map静态方法也可以遍历伪数组

$.map(arr , function(value , index){
	console.log(index , value);
});

jQuery中的each静态方法和map静态方法的区别:
each静态方法默认的返回值就是, 遍历谁就返回谁
map静态方法默认的返回值是一个空数组

each静态方法不支持在回调函数中对遍历的数组进行处理
map静态方法可以在回调函数中通过return对遍历的数组进行处理, 然后生成一个新的数组返回

var res = $.map(obj, function (value, index) {
            console.log(index, value);            
            return value + index;        
            });
console.log(res);
jQuery中的其它静态方法

$.trim();
作用: 去除字符串两端的空格
参数: 需要去除空格的字符串
返回值: 去除空格之后的字符串

$.isWindow();
作用: 判断传入的对象是否是window对象
返回值: true/false

$.isArray();
作用: 判断传入的对象是否是真数组
返回值: true/false

$.isArray();
作用: 判断传入的对象是否是一个函数
返回值: true/false
注意点:jQuery框架本质上是一个函数

$.holdReady(true);
作用: 暂停ready执行

jQuery内容选择器

编写jQuery相关代码

:empty 作用:找到既没有文本内容也没有子元素的指定元素
var $div = $(“div:empty”);

:parent 作用: 找到有文本内容或有子元素的指定元素
var $div = $(“div:parent”);

:contains(text) 作用: 找到包含指定文本内容的指定元素
var $div = $(“div:contains(‘我是div’)”);

:has(selector) 作用: 找到包含指定子元素的指定元素
var $div = $(“div:has(‘span’)”);

属性和属性节点

1.什么是属性?
对象身上保存的变量就是属性

2.如何操作属性?
对象.属性名称 = 值;
对象.属性名称;
对象[“属性名称”] = 值;
对象[“属性名称”];

3.什么是属性节点?

在编写HTML代码时,在HTML标签中添加的属性就是属性节点
在浏览器中找到span这个DOM元素之后, 展开看到的都是属性
在attributes属性中保存的所有内容都是属性节点

4.如何操作属性节点?
DOM元素.setAttribute(“属性名称”, “值”);
DOM元素.getAttribute(“属性名称”);

5.属性和属性节点有什么区别?
任何对象都有属性, 但是只有DOM对象才有属性节点

<span name = “it666” . ><./span >

var p = new Person();
p.name = “lnj”;
p[“name”] = “zs”;

Query的attr方法

1.attr(name|pro|key,val|fn)
作用: 获取或者设置属性节点的值
可以传递一个参数, 也可以传递两个参数
如果传递一个参数, 代表获取属性节点的值
如果传递两个参数, 代表设置属性节点的值

注意点:
如果是获取:无论找到多少个元素, 都只会返回第一个元素指定的属性节点的值
如果是设置:找到多少个元素就会设置多少个元素
如果是设置: 如果设置的属性节点不存在, 那么系统会自动新增

2.removeAttr(name)
删除属性节点

注意点:
会删除所有找到元素指定的属性节点
$(“span”).attr(“class”, “box”);

jQuery的prop方法

1.prop方法
特点和attr方法一致
2.removeProp方法
特点和removeAttr方法一致

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值