我是靠谱客的博主 靓丽戒指,最近开发中收集的这篇文章主要介绍jQuery自学(五)——jQuery和原生Js区别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

jQuery和原生Js区别

jQuery的$符合产生冲突

jquery的each方法

jQuery的map方法

jQuery中的each静态方法和map静态方法区别


 

jQuery和原生Js区别

 通过原生Js可以拿到DOM元素的宽高,通过jQuery不可以拿到DOM元素的宽高

因为原生Js和jQuery入口函数的加载模式不同

原生JS会等到DOM元素加载完毕,并且图片也加载完毕才会执行

jQuery会等到DOM元素加载完毕,但不会等到图片也加载完毕执行

例子:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
		<script src="js/jquery-1.11.0.js" type="text/javascript" charset="utf-8"></script>
		<title></title>
	</head>
	<body>
		<img src="https://p.ssl.qhimg.com/dmfd/400_300_/t015ebff91c60cfe4c3.gif" />
		
		<script type="text/javascript">
			window.onload = function(ev){
				//1.通过原生js入口函数拿到DOM元素
				var img = document.getElementsByTagName("img")[0];
				console.log("onload",img);
				//2.通过原生Js可以拿到DOM元素的宽高
				var width = window.getComputedStyle(img).width;
				console.log("onload",width);
			}
			$(document).ready(function(){
				//1.通过jQuery入口函数拿到DOM元素
				var $img = $("img");
				console.log("ready",$img);
				//2.通过jQuery不可以拿到DOM元素的宽高
				var $width = $img.width();
				console.log("ready",$width);
			})
		</script>
	</body>
</html>

 

原生JS如果编写了多个入口函数,后面编写的会覆盖前面的

jQuery编写多个入口函数,后面的不会覆盖前面的

 

jQuery的$符合产生冲突

在程序中,如果使用了其他的框架,里面的$符会和jQuery产生冲突

解决方法:

1.释放$的使用权,以后就不使用$了,可以直接使用jQuery

jQuery.noConflict()

//释放jQuery的$使用权
jQuery.noConflict()
var $img = jQuery("img");

2.自定义一个访问符,以后用自定义的访问符去代替$

var nj = jQuery.noConflict();

//自定义一个访问符
var nj = jQuery.noConflict();
var $img = nj("img");

 

jquery的each方法

<script type="text/javascript">
	$.each(['a','b','c'], function(index,item) {
		console.log(index+' '+item);
	});
</script>

 

jQuery的map方法

原生Js的map遍历

<script type="text/javascript">

	var arr = [1,2,3,4,5,9];
	var obj = {0:1,1:3,2:5,3:8,4:9,length:5};
	//1.利用原生map方法遍历
	/*第一个参数:当前遍历到的元素
	第二个参数:当前遍历到的索引
	第三个参数:当前遍历的数组
	* */
	arr.map(function(value,index,array){
		console.log(value,index,array)
	})
</script>

和原生的forEach一样,不能遍历伪数组

<script type="text/javascript">
	var arr = [1,2,3,4,5,9];
	var obj = {0:1,1:3,2:5,3:8,4:9,length:5};
	//1.利用原生map方法遍历
	/*第一个参数:当前遍历到的元素
	第二个参数:当前遍历到的索引
	第三个参数:当前遍历的数组
	* */
	obj.map(function(value,index,array){
		console.log(value,index,array)
	})
</script>

jQuery的map方法

<script type="text/javascript">
	var arr = [1,2,3,4,5,9];
	var obj = {0:1,1:3,2:5,3:8,4:9,length:5};
	//1.利用原生map方法遍历
	/*第一个参数:要遍历的数组
	第二个参数:每遍历一个元素之后要执行的回调函数
	* */
	$.map(arr,function(value,index){
		console.log(value,index)
	})
</script>

<script type="text/javascript">
	var arr = [1,2,3,4,5,9];
	var obj = {0:1,1:3,2:5,3:8,4:9,length:5};
	//1.利用原生map方法遍历
	/*第一个参数:要遍历的数组
	第二个参数:每遍历一个元素之后要执行的回调函数
	* */
	$.map(obj,function(value,index){
		console.log(value,index)
	})
</script>

 

jQuery中的each静态方法和map静态方法区别

each静态方法默认的返回值就是遍历谁就返回谁

map静态方法默认的返回值是一个空数组

each静态方法不支持在回调函数中对遍历的数组进行处理

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

 

 

 

 

 

一起学习,一起进步 -.- ,如有错误,可以发评论

最后

以上就是靓丽戒指为你收集整理的jQuery自学(五)——jQuery和原生Js区别的全部内容,希望文章能够帮你解决jQuery自学(五)——jQuery和原生Js区别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部