jquery 将dom对像转换成数组对象

jquery 将dom对像转换成数组对象

1、jQuery对象(this指向)其实就是一个键值对数据集合,一张普通的hashTabel。集合中,自定义键名可以是字母,也可以是整数,索引方式{name1: "value1", name2: "value2"}[name2]与{0: "value1", 1: "value2"}[1]不存在任何差异,后者数据结构与数组(Array)没有任何关系,那来的”[document]“?

2、jQuery框架之所以在构造器jQuery.fn.init构造返回jQuery对象过程中筛选DOM对象存储到jQuery对象的属性中,存储DOM元素数据键名采用0、1、2......的形式,并且定义了一个length属性,完全是为了方便(兼容)方法jQuery.each操作DOM元素的需要。看看下面简洁模拟就会明白:
jQuery.each = function(object, callback, args) { //object可以为数组Array:[...]也可以是对象Object:{0: DOM1, 1: DOM2, 2: DOM3 ... length: 3+}
         for (var i = 0; i < object.length; i ++) {
               callback.call(object[i], i, arg)
         }
         return object
}
jQuery.each(this, function(i, arg) { //这里this就是jQuery对象,传入jQuery.each中遍历键名0、1、2....循环索引,就能很方便的获取每个DOM元素(DOM对象)进行操作处理。
        Method .................
        //操作1个(或批量操作)DOM元素,并返回jQuery对象(this)。
}, arg)

3、问题在于一些介绍jQuery对象的教程中,把键名为0、1、2 .....的并自定义了length属性的数据结构从jQuery对象中割裂开来称为“类数组”,臆造概念,画蛇添足,误人子弟于云里雾里

<script src="http://code.jquery.com/jquery-1.6.2.js"></script>
<script>
alert(Object.prototype.toString.call($(document)) === '[object Array]'); // ???
alert($(document)[0]===document);
</script>

时间: 2024-10-27 22:41:02

jquery 将dom对像转换成数组对象的相关文章

js将类数组对象转换成数组对象_javascript技巧

在标准浏览器中,好像只要对象存在length属性,就能把它转换为数组,但IE就不尽然. [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 接着我们看看各大类库的处理: 复制代码 代码如下: //jQuery的makeArray var makeArray = function( array ) { var ret = []; if( array != null ){ var i = array.length; // The window, strings (and functions)

将HTMLCollection/NodeList/伪数组转换成数组的实现方法_javascript技巧

这里把符合以下条件的对象称为伪数组 1,具有length属性 2,按索引方式存储数据 3,不具有数组的push,pop等方法 如 1,function内的arguments . 2,通过document.forms,Form.elements,Select.options,document.getElementsByName() ,document.getElementsByTagName() ,childNodes/children 等方式获取的集合(HTMLCollection,NodeLi

js中将HTMLCollection/NodeList/伪数组转换成数组的代码_javascript技巧

这里把符合以下条件的对象称为伪数组 1,具有length属性 2,按索引方式存储数据 3,不具有数组的push,pop等方法 如 1,function内的arguments . 2,通过document.forms,Form.elements,Select.options,document.getElementsByName() ,document.getElementsByTagName() ,childNodes/children 等方式获取的集合(HTMLCollection,NodeLi

python实现将元祖转换成数组的方法

  这篇文章主要介绍了python实现将元祖转换成数组的方法,涉及Python中list方法的使用技巧,需要的朋友可以参考下 本文实例讲述了python实现将元祖转换成数组的方法.分享给大家供大家参考.具体分析如下: python的元祖使用一对小括号表示的,元素是固定的,如果希望添加新的元素,可以先将元祖转换成数组列表,再进行操作 ? 1 2 3 colour_tuple = ("Red","Green","Blue") colour_list

在java中如何将输入流转换成数组

问题描述 在java中如何将输入流转换成数组 客户端发送数组,服务器端接受并排序.如何将接受的输入流转换成数组 解决方案 http://outofmemory.cn/code-snippet/11389/java-convert-inputstream-to-byte-array 解决方案二: 如何将伪数组转换成数组 解决方案三: apache comments io包中的IOUtils中有现成的方法 解决方案四: 字符串转化成整形数组?字节数组取出来的值就是0-127的数.

php 将table转换成数组的函数,单词之间的空格也被删掉了!

问题描述 php 将table转换成数组的函数,单词之间的空格也被删掉了! 下面是我用的函数,可以正常转换,就是转换之后 英语句子里面单词之间没有空格了,谁帮我看下. function get_td_array($table) { $td_array = ""; $table = preg_replace("'<table[^>]*?>'si", "", $table); $table = preg_replace("

json对象与数组以及转换成js对象的简单实现方法_javascript技巧

JSON 语法规则 JSON 语法是 JavaScript 对象表示法语法的子集. •数据在名称/值对中 •数据由逗号分隔 •花括号保存对象 •方括号保存数组 JSON 对象 JSON 对象在花括号中书写: 对象可以包含多个名称/值对: { "firstName":"John" , "lastName":"Doe" } 这一点也容易理解,与这条 JavaScript 语句等价: firstName = "John&q

解析PHP将对象转换成数组的方法(兼容多维数组类型)_php技巧

复制代码 代码如下:  /**  * @author   * @date 2013-6-21  * @todo 将对象转换成数组  * @param unknown_type $obj  * @return unknown  */ function object_to_array($obj){  $_arr = is_object($obj) ? get_object_vars($obj) :$obj;  foreach ($_arr as $key=>$val){   $val = (is_a

把json格式的字符串转换成javascript对象或数组的方法总结_javascript技巧

第一种 JSON.parse(jsonString) 第二种 eval("("+jsonString+")") 第三种 var obj=(function ToJSON(o){ if(typeof(o)=="string")try{return new Function("return "+o)();}catch(e){return null;} })("[{name:'zhangsan',age:'24'},{na