MooTools教程(3):数组管理DOM元素

2016-02-20 00:41 10 1 收藏

下面图老师小编跟大家分享MooTools教程(3):数组管理DOM元素,一起来学习下过程究竟如何进行吧!喜欢就赶紧收藏起来哦~

【 tulaoshi.com - Web开发 】

在上一篇教程中,我们介绍了一下选择器,其中有很多方法就会返回数组(一个你可以对其中内容进行多种操作的特殊列表)。今天,我们在来看看如何使用数组来管理DOM元素。

基本方法

.each();

在处理数组时,.each();方法是你最好的朋友。它提供了一种很容易的方法来遍历数组的每个元素,如果有需要还可以对其中的元素进行任何逻辑处理。例如,我们可以假设你需要为页面中的每个div对象调用alert方法:

参考代码:$$().each(() {     alert(); });

如果使用下面的HTML代码,上面的JavaScript代码将弹出两个alert对话框,每个div一个。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)参考代码:divOne/div divTwo/div

.each();方法不需要你使用$$方法。创建一个数组的另一种方式(就像我们昨天讲到过的)是使用.getElements();方法。

参考代码:$().getElements().each(() {     alert(); }); 参考代码:div id=     divOne/div     divTwo/div /div

还有另外一种方法来完成这个相同的任务,就是把这个数组赋值给一个变量,然后对那个变量使用.each();方法:

参考代码:  myArray = $().getElements();   myArray.each(() {     alert(); });

最后,如果你可能想把你的函数从选择器中独立出来。我们会在明天的关于使用函数的教程中更深入地讲解这个问题。不过,现在我们可以创建一个非常简单的示例:

参考代码: myArray = $().getElements();    myFunction = () {     alert(); };   myArray.each(myFunction);

注意:当你像刚才那样在.each();.方法里面调用函数时,你不需要给函数名加上引号。

复制一个数组

$A

MooTools提供了一个简单的方式通过$A函数来复制一个数组。让我们像刚才那样使用变量创建一个数组:

参考代码:  myArray = $().getElements();

复制一个数组(创建该数组的副本):

参考代码:  myCopy = $A(myArray ); 从数组中获取指定的元素

.getLast();

.getLast();方法返回数组中最后一个元素。首先我们建立一个数组:

参考代码: myArray = $().getElements();

现在我们可以从这个数组中获取最后一个元素:

参考代码: lastElement = myArray.getLast();

变量lastElement现在的值就是数组myArray中的最后一个元素了。

.getRandom();

和.getLast();一样,不过它随机从数组中取得一个元素:

参考代码: randomElement = myArray.getRandom();

变量randomElement现在的值就是从数组myArray中随机选取的一个元素了。

向数组中添加一个元素

.include();

通过这个方法,你可以给数组添加另外一个元素。只要把元素选择器传给.include();方法,它就会包含到你的数组中。我们使用下面的HTML代码:

参考代码:div id=     divone/div     divtwo/div     span id=add to array/span /div

我们可以像以前那样调用body_wrap下面的所有div一样来创建一个数组:

参考代码: myArray = $().getElements();

要把另外一个元素添加到这个数组中,首先你需要把这个元素赋值给一个变量,然后使用include方法:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)参考代码:  newToArray = $();   myArray.include(newToArray);

现在,这个数组就同时包含div和span元素了。

.combine();

和.include();方法一样,不过它可以让你把一个数组添加到一个已经存在的数组中,而不用担心有重复的内容。假设我们现在从下面的HTML中取得了两个数组:

参考代码:div id=     divone/div     divtwo/div     span class=add to array/span     span class=add to array, also/span     span class=add to array, too/span /div

我们可以这样建立两个数组:

参考代码:  myArray= $().getElements();    newArrayToArray = $$();

现在我们可以使用.combine();方法来合并两个数组,这个方法会自己处理重复的元素,因此我们不需要处理:

参考代码: myArray.combine(newArrayToArray );

现在myArray就包含了newArraytoArray中的所有元素。

代码示例

数组可以让你遍历包含所有项目的列表,并对每个元素执行相同的代码。在这个例子中,注意变量item作为当前元素的替代符的使用。

参考代码:  myArray = $().getElements();    addSpan = $();  addMany = $$();   myArray.include(addSpan); myArray.combine(addMany);    myArrayFunction = (item) { item.setStyle(, ); }   myArray.each(myArrayFunction); 参考代码:div id=     div class=one/div     divtwo/div     div class=three/div     span id=add to array/span       br /span class=one of many/span       br /span class=two of many/span   /div 延伸学习

这个教程并没有打算涵盖你能对数组做的全部事情,但是希望能够给你一个参考,告诉你MooTools提供了一些什么功能。要学习更多关于数组的东西,请仔细阅读这些内容:

这个页面中有许多

包括一个简单的html文件、MooTools 1.2核心库、一个外部JavaScript文件、一个css文件和上面的所有例子。

来源:http://www.tulaoshi.com/n/20160220/1632376.html

延伸阅读
标签: Web开发
先来看一张简单的文档树 很明显树的顶层节点是NodeA节点,接下来可以通过指定的合适节点移动到树中的任何点,结合以下的代码你可以更好的了解这棵树节点间的相互关系: NodeA.firstChild = NodeA1 NodeA.lastChild = NodeA3 NodeA.childNodes.length = 3 NodeA.childNodes[0] = NodeA1 NodeA.childNodes[1] = NodeA2 NodeA.childNodes...
标签: Web开发
今天我们来看看MooTools是怎样使得过滤用户输入变得非常轻松。我们今天将讲一些基本的数字过滤,明天再更深入地讲讲字符串过滤。 注意 :JavaScript中的输入过滤只是为了保证(客户端)代码顺利执行,并 不能 替代服务器端的字符串过滤来保护你的应用程序不被注入攻击。 在第四讲的最后的一个例子中,我们从文本输入框获取RGB值,然后使...
标签: Web开发
       对结点的属性赋值   一旦创建了结点,还要对其属性赋值,如独立的标识符,或者特性值。你要用到SetAttribute方法。该方法接收两个参数— 属性名和属性值。例如,下列代码创建了属性名SHIPPING_DATASOURCE 和属性值NORTH_ATLANTIC_SHIPPING:      objXMLroot.SetAttribute...
标签: Web开发
到现在为止,初始化这些MooTools插件对象就会开始变得越来越熟悉。滚动条(Slider)没有任何不同,你要创建一个新的滚动条,定义滚动条和滑块相关的元素,然后设置你的选项,再创建一些回调事件的控制函数。尽管滚动条(Slider)遵循这个熟悉的模式,但是任然还有一点特殊的地方。 基本用法创建一个新的滚动条(Slider)对象 我们首先从HTML...
标签: Web开发
var arr=['a','b','c']; 若要删除其中的'b',有两种方法: 1.delete方法:delete arr[1] 这种方式数组长度不变,此时arr[1]变为undefined了,但是也有好处原来数组的索引也保持不变,此时要遍历数组元素可以才用 for(index in arr) document.write('arr['+index+']='...

经验教程

179

收藏

14
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部