jQuery数组对象转javascript数组

编程知识 行业动态 更新时间:2024-06-13 00:21:07

当我们在前端开发中,使用了jQuery时,我们通常通过$(".box-item")的方式获取的是一个jQuery对象是一个类数组对象,当我们需要向后台传输的数据中,使用的是javascript数组,或者有时候,我们需要将jQuery对象转换为javascript对象,一般来说jQuery对象,是不同于javascript元素或对象的,他是一个自带length属性的对象,但不是数组对象。

说类数组是因为有length属性,但是却不是真正意义上的数组: 

该jQuery对象除了有四个html元素之外,还有一个length属性,即便这个length属性为1,他也是一个类数组对象。当length=1时,我们将其转换为javascript对象,只需要获取第一个元素即可。$(".box-item")[0]。但是通常情况下,length是不为1的。为此,我们总结了以下几种转换方式:其中1和2本质上是一样的。

这里不光支持jQuery元素类数组转换,还支持jQuery数组的转换,如下所示,将四个box-item类元素的数组,先取偶数下标,然后将data-id属性取出,就组成了一个jQuery数组,数组元素为1,3最后通过上面的方式,将其转换为javascript数组。

完整代码如下:

<!doctype html>
<html>
  <head>
	   <meta charset="UTF-8"/>
	   <title>jQuery数组对象转javascript数组</title>
	   <style type="text/css">
		  *{margin:0;padding:0}
		  #box{width:800px;margin:0 auto;}
		  .box-item{background:#ddd;height:40px;margin:5px 0;}
	   </style>
	   <script type="text/javascript" src="../jquery.min.js"></script>
  </head>
  <body>
	   <div id="container">
		  <div id="box">
			<div class="box-item" data-id="1">1. [].slice.call(items)</div>
			<div class="box-item" data-id="2">2. Array.prototype.slice.call(items)</div>
			<div class="box-item" data-id="3">3. Array.from(items)</div>
			<div class="box-item" data-id="4">4. $.makeArray(items)</div>
		  </div>
	   </div>
	   <script type="text/javascript">
		  $(function(){
			var items = $(".box-item");
			items = $(items).filter(function(index,item){
				return index%2==0;
			}).map(function(index,item){
				return $(item).data("id");
			});
			console.log(items);
			//var res = [].slice.call(items);
			//var res = Array.prototype.slice.call(items);
			//var res = Array.from(items);
			var res = $.makeArray(items);
			console.log(res);
		  });
	   </script>
  </body>
</html>

 转换过程通过console.log()打印jQuery数组和javascript数组结构:

 

反过来,javascript对象要转为jQuery对象,很简单,只需要通过符号$()转换一下,如$(object),就可以将javascript对象转为jQuery对象。 

更多推荐

jQuery数组对象转javascript数组

本文发布于:2023-03-31 03:26:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/55d0226778d1aa39372d2fcdc6f9be6d.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数组   对象   jQuery   javascript

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!