⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 element.md.svn-base

📁 mooltools源码很不错的源码
💻 SVN-BASE
📖 第 1 页 / 共 3 页
字号:
Native: Window {#Window}
========================

下面一系列方法都是全局方法(Window上的方法)

函数: $ {#dollar}
---------------------

$方法有两个目的: 

 1.按id来获取元素 

 2.让Internet Explorer下所有元素获得[Element][]所提供的扩展方法

### 语法:

	var myElement = $(el);

### 参数:

1. el - (*mixed*) DOM元素的id或DOM元素的引用

### 返回值:

* (*mixed*) 如果取得指定的DOM元素,则返回该元素; 否则返回null

### 示例:

#### 通过id来获取DOM元素:

	var myElement = $('myElement');

#### 通过引用来获取DOM元素:

	var div = document.getElementById('myElement');  //普通的标准DOM元素
	div = $(div); 									 //经过扩展后的DOM元素

### 备注:

- 本方法在当不清楚到底是对实际的元素节点还是元素的id进行操作的时候比较有用.它还可以被认为是加强版的document.getElementById()
- 在Internet Explorer浏览器中, 当$第一次调用的时候,元素将进行对[Element][]的扩展, 将获得[Element][]中提供的方法
- 对原生HTMLElement支持的浏览器(诸如Safari, Firefox, 以及 Opera), 将自动获得[Element][]对DOM元素的扩展
- MooTools会检测一个元素是否需要被扩展, 所以$方法针对一个元素多次调用的话不会产生副作用



函数: $$ {#dollars}
-----------------------

获取并扩展一组DOM元素. 

获取到的元素数组中的每个元素都获得了[Element][]中的方法

### 语法:

	var myElements = $$(aTag[, anElement[, Elements[, ...]);

### 参数:

* 接受任意个数的参数, 参数类型如下: HTMLCollections, 元素数组, 多个单独的元素, 或者CSS选择器字符串

### 返回值:

* (array) - 符合条件的元素数组, 元素都经过[$][]的扩展

### 示例:

#### 由标签名获取元素:

	$$('a'); 		//获取页面中所有的<a>超链接元素
	$$('a', 'b'); 	//获取页面中所有的<a>超链接元素和粗体字元素

#### 使用CSS选择器(当[Selectors][]模块包含在源代码中时):

	$$('#myElement'); 			//返回一个数组,数组中只有一个id为'myElement'的元素
	$$('#myElement a.myClass'); //返回id为'myElement'的元素下的所有class为'myClass'的超链接元素

#### 更复杂的 $$ 用法:

	$$(myelement1, myelement2, 'a', '#myid, #myid2, #myid3', document.getElementsByTagName('div'));

### 备注:

- 当[Selectors][]模块加载后, [$$][] 可以接受功能丰富的CSS选择器. 否则,只支持最小程度的以元素标签名进行选择
- 如果未找到任何符合条件的元素, 则返回一个空数组
- [$$][]返回的总是一个数组, 不管符合的结果元素个数是多少

### 另参考:

- 查看[Selectors][]部分的文档



Native: Element {#Element}
==========================

本框架自定义的原生类, 用于提供对所有DOM元素进行功能扩展


Element 方法: constructor {#Element:constructor}
--------------------------------------------------

根据指定的元素类型创建新元素

### 语法:

	var myEl = new Element(element[, properties]);

### 参数:

1. element - (*mixed*) 创建的Element对象的实际DOM元素的标签名
2. properties - (*object*, 可选) 元素的其他属性

### 返回值:

* (*element*) 一个新的MooTools扩展后的HTML元素

### 示例:

	var myAnchor = new Element('a', {
		'href': 'http://mootools.net',
		'class': 'myClass',
		'html': 'Click me!',
		'styles': {
			'display': 'block',
			'border': '1px solid black'
		},
		'events': {
			'click': function(){
				alert('clicked');
			},
			'mouseover': function(){
				alert('mouseovered');
			}
		}
	});

### 另参考:

- [$][], [Element:set][]



Element 方法: getElement {#Element:getElement}
------------------------------------------------

获取本元素下的第一个指定标签名的子元素. 

如果使用了[Selectors][],则可以使用CSS选择器.

### 语法:

	var myElement = myElement.getElement(tag);

### 参数:

1. tag - (*string*) 要查找的元素标签名

### 返回值:

* (*mixed*) 如果找到符合的子元素,则返回该子元素;否则返回null

### 示例:

	var firstDiv = $(document.body).getElement('div');

### 备注:

- Document类的实例上也有相应的本方法
- 当使用了[Selectors][]后,本方法将被使用CSS选择器的新方法替代
- [Selectors][] 可对 [Element:getElements][] 进行功能加强, 使用后可基于CSS选择器进行元素查找

### 另参考:

- 查看[Selectors][]部分的文档



Element 方法: getElements {#Element:getElements}
--------------------------------------------------

获取本元素下所有指定标签名的子元素.

如果使用了[Selectors][],则可以使用CSS选择器.

### 语法:

	var myElements = myElement.getElements(tag);

### 参数:

1. tag - (*string*) 要查找的元素标签名

### 返回值:

* (*array*) 一个包含找到的元素数组([Elements][])

### 示例:

	var allAnchors = $(document.body).getElements('a');

### 备注:

- Document类的实例上也有相应的本方法
- 当使用了[Selectors][]后,本方法将被使用CSS选择器的新方法替代
- [Selectors][] 可以对 [Element:getElements][] 进行功能加强, 使用后可基于CSS选择器进行元素查找

### 另参考:

- 查看[Selectors][]部分的文档



Element 方法: getElementById {#Element:getElementById}
--------------------------------------------------------

获取本元素下指定id的子元素

### 语法:

	var myElement = anElement.getElementById(id);

### 参数:

1. id - (*string*) 子元素id

### 返回值:

* (*mixed*) 如果找到符合条件的子元素,则返回该子元素; 否则返回null

### 示例:

	var myChild = $('myParent').getElementById('myChild');

### 备注:

- 本方法不会覆盖掉Document实例原生的document.getElementById, Document实例的该方法还是原生方法



Element 方法: set {#Element:set}
----------------------------

用于设置元素的属性值. 

这是一个'动态参数'方法. 传入的参数可以是任意在[Element.Properties][]中定义过类型.

### 语法:

	myElement.set(arguments);

### 参数:

- 两个参数的形式: (property, value)
	1. property - (*string*) 任意在[Element.Properties][]中定义过的属性名
	2. value - (*mixed*) 属性值
	
- 一个参数的形式: (properties)
	1. properties - (*object*) 多个属性组成的键值对对象

### 返回值:

* (*element*) 主调元素

### 示例:

#### 使用'属性-值':

	$('myElement').set('text', 'text goes here');
	$('myElement').set('class', 'active');
	
	//'styles'属性设置的对象值会进一步传递给Element:setStyles方法
	var body = $(document.body).set('styles', { 
		'font': '12px Arial',
		'color': 'blue'
	});

#### 使用属性键值对对象:

	var myElement = $('myElement').set({
		//'styles'属性设置的对象值会进一步传递给Element:setStyles方法
		'styles': {
			'font': '12px Arial',
			'color': 'blue',
			'border': '1px solid #f00'
		},
		//'events'属性设置的对象之会进一步传递给Element:addEvents方法
		'events': {
			'click': function(){ alert('click'); },
			'mouseover': function(){ this.addClass('over') }
		},
		//其他设置的属性值会传递给Element:setProperty方法
		'id': 'documentBody'
	});

### 备注:

- 所有属性参数都将传递给[Element.Properties][]中定义的对应的属性中的方法
- 如果在[Element.Properties][]未找到对应的属性, 则会使用[Element:setProperty][]方法

### 另参考:

- [Element][], [Element.Properties][], [Element:setProperty][], [Element:addEvents][], [Element:setStyles][]



Element 方法: get {#Element:get}
----------------------------------

用于获取元素的属性值. 

这是一个'动态参数'方法. 传入的参数可以是任意在[Element.Properties][]中定义过类型.

### 语法:

	myElement.get(property);

### 参数:

1. property - (*string*) 任意在[Element.Properties][]中定义过的属性名

### 返回值:

* (*mixed*) 调用[Element.Properties][]中对应属性下的get方法后的返回值

### 示例:

#### 获取自定义的属性:

	var tag = $('myDiv').get('tag'); //返回 "div".

#### 获取原生属性:

	var id = $('myDiv').get('id'); 			//返回 "myDiv".
	var value = $('myInput').get('value'); 	//返回 myInput元素的value属性值(myInput为input元素,具有原生value属性).

### 备注:

-  如果要获取的属性在[Element.Properties][]中未定义, 则会使用[Element:getProperty][]

### 另参考:

- [Element][], [Element.Properties][], [Element:getProperty][]



Element 方法: erase {#Element:erase}
--------------------------------------

用于删除元素的属性值. 

这是一个'动态参数'方法. 传入的参数可以是任意在[Element.Properties][]中定义过类型.

### 语法:

	myElement.erase(property);

### 参数:

1. property - (*string*) 任意在[Element.Properties][]中定义过的属性名

### 返回值:

* (*mixed*) 调用[Element.Properties][]中对应属性下的erase方法后的返回值

### 示例:

	$('myDiv').erase('id'); 	//删除myDiv上的id
	$('myDiv').erase('class'); 	//删除myDiv上的class属性

### 备注:

-  如果要删除的属性在[Element.Properties][]中未定义, 则会使用[Element:removeProperty][]

### 另参考:

- [Element][], [Element.Properties][], [Element:removeProperty][]



Element 方法: match {#Element:match}
--------------------------------------

检测元素的标签名是否为指定的标签名.

如果使用了[Selectors][],则可以使用CSS选择器.

### 语法:

	myElement.match(tag);

### 参数:

1. tag - (*string*) 标签名

### 返回值:

* (*boolean*) 如果元素符合给出的标签名,则返回true; 否则返回false

### 示例:

	$('myDiv').match('div'); //如果myDiv是一个div元素,则返回true

### 备注:

- 参见[Element:match](/Selectors/Selectors#Element:match).
- 当使用了[Selectors][]后,本方法会被功能更强的方法覆盖



Element 方法: inject {#Element:inject}
----------------------------------------

向指定元素的指定位置中插入本元素

### 语法:

	myElement.inject(el[, where]);

### 参数:

1. el	- (*mixed*) 目标元素的id或引用
2. where - (*string*, 可选: 默认为'bottom') 插入的位置.  可为: 'top', 'bottom', 'after', 'before'

### 返回值:

* (*element*) 主调元素

### 示例:

##### JavaScript

	var myFirstElement  = new Element('div', {id: 'myFirstElement'});
	var mySecondElement = new Element('div', {id: 'mySecondElement'});
	var myThirdElement  = new Element('div', {id: 'myThirdElement'});

##### 结果 HTML

	<div id="myFirstElement"></div>
	<div id="mySecondElement"></div>
	<div id="myThirdElement"></div>

#### 插入到内部的底部(bottom):

##### JavaScript

	myFirstElement.inject(mySecondElement);

##### 结果 HTML

	<div id="mySecondElement">
		<div id="myFirstElement"></div>
	</div>

#### 插入到内部的顶部(top):

##### JavaScript

	myThirdElement.inject(mySecondElement, 'top');

##### 结果 HTML

	<div id="mySecondElement">
		<div id="myThirdElement"></div>
		<div id="myFirstElement"></div>
	</div>

#### 插入到之前(before):

##### JavaScript

	myFirstElement.inject(mySecondElement, 'before');

##### 结果 HTML

	<div id="myFirstElement"></div>
	<div id="mySecondElement"></div>

#### 插入到之后(after):

##### JavaScript

	myFirstElement.inject(mySecondElement, 'after');

##### 结果 HTML

	<div id="mySecondElement"></div>
	<div id="myFirstElement"></div>

### 另参考:

[Element:adopt](#Element:adopt), [Element:grab](#Element:grab), [Element:wraps](#Element:wraps)



Element 方法: grab {#Element:grab}
------------------------------------

向本元素内部的指定位置添加子元素

和[Element:inject](#Element:inject)相反的功能.



### 语法:

	myElement.grab(el[, where]);

### 参数:

1. el - (*mixed*) 目标元素的id或引用
2. where - (*string*, 可选: 默认为'bottom') 添加元素的位置.可为:'top' 或 'bottom'

### 返回值:

* (*element*) 主调元素

### 示例:

##### JavaScript

	var myFirstElement = new Element('div', {id: 'myFirstElement'});
	var mySecondElement = new Element('div', {id: 'mySecondElement'});

	myFirstElement.grab(mySecondElement);

##### 结果 HTML

	<div id="myFirstElement">
		<div id="mySecondElement"></div>
	</div>

### 另参考:

[Element:adopt](#Element:adopt), [Element:inject](#Element:inject), [Element:wraps](#Element:wraps)



Element 方法: adopt {#Element:adopt}
--------------------------------------

向本元素内部添加子元素

功能和[Element:grab](#Element:grab)相同, 不过一次可以插入多个元素.


### 语法:
	
	myParent.adopt(el[, others]);
	
### 参数:

1. el - (*mixed*)          可为: 元素的id, 元素实例, 或元素数组
2. others - (*mixed*, 可选) 逗号分隔的多个元素,或是一个包含多个元素的数组

### 返回值:

* (*element*) 主调元素

### 示例:

##### JavaScript

	var myFirstElement  = new Element('div', {id: 'myFirstElement'});
	var mySecondElement = new Element('a', {id: 'mySecondElement'});
	var myThirdElement  = new Element('ul', {id: 'myThirdElement'});
	
	myParent.adopt(myFirstElement);
	myParent2.adopt(myFirstElement, 'mySecondElement');
	myParent3.adopt([myFirstElement, mySecondElement, myThirdElement]);

##### 结果 HTML

	<div id="myParent">
		<div id="myFirstElement" />
	</div>
	<div id="myParent2">
		<div id="myFirstElement" />
		<a />
	</div>
	<div id="myParent3">
		<div id="myFirstElement" />
		<a />
		<ul />
	</div>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -