通过Mootools 1.2来操纵HTML DOM元素_Mootools

我们已经学习过如何来选取DOM元素,怎么创建数组,怎么创建函数,怎么把事件添加到元素,今天我们来深入地学习一下如果操纵HTML元素。通过MooTools 1.2,你可以添加新元素到一个HTML页面中,也可以删除元素,以及改变任何样式或者元素参数,这些都非常容易。
基本方法
.get();
这个工具可以让你获取元素的属性(property)。元素的属性是组成一个HTML元素的各种不同部分,例如src、value、name等等。使用.get();方法非常简单:
参考代码:

复制代码 代码如下:

// 下面这行将返回id为“id_name”的元素的html标记名(div、a、span……)
$('id_name').get('tag');

参考代码:

复制代码 代码如下:

<div id="body_wrap">
<span id="id_name">Element</span> <!-- 上面的代码将返回“span” -->
</div>

你可以使用.get();方法获得更多属性,而不只是html标记名:
id
name
value
href
src
class(如果有多个CSS类名,则将返回全部CSS类名)
text (一个元素的文本内容)
等等…
.set();
.set();方法和.get();方法一样,不过不是获得一个值,而是设置一个值。当和事件联合使用时比较有用,通过这个方法你可以在页面加载之后改变一些属性值。
参考代码:
// 这将设置id为id_name的元素链接地址为“http://www.google.com”
$('id_name').set('href', 'http://www.google.com');

参考代码:

复制代码 代码如下:

<div id="body_wrap">
<!-- 上面的代码将改变链接地址为“http://www.google.com” -->
<a id="id_name" href="http://www.yahoo.com">Search Engine</a>
</div>

.erase();
通过.erase();方法,你可以清除一个元素的属性值。它和前面两个方法类似。选取元素,然后选择你要清除的属性。
参考代码:
// 这讲移除id为id_name的元素的href属性
$('id_name').erase('href');

参考代码:

复制代码 代码如下:

<div id="body_wrap">
<!-- 上面的代码将清除链接地址 -->
<a href="http://www.yahoo.com">Search Engine</a>
</div>

移动元素
.inject();
要移动页面上一个已经存在的元素,你可以使用.inject();方法。和我们看到的其它方法类似,它用起来也非常简单,可以在你的用户界面上给你更多操控权。要使用.inject();方法,首先要设置一些包含元素变量:
参考代码:

复制代码 代码如下:

var elementA = $('elemA');
var elementB = $('elemB');
var elementC = $('elemC');

上面的代码把下面这个HTML分别赋值给了不同的变量,这样用MooTools来操作时会比较简单。
参考代码:

复制代码 代码如下:

<div id="body_wrap">
<div id="elemA">A</div>
<div id="elemB">B</div>
<div id="elemC">C</div>
</div>

现在,要改变这些元素的顺序,我们可以通过四种方式来使用.inject();方法。我们可以把元素注入到:
底部(bottom,默认)
顶部(top)
在某个元素的前面(before)
在某个元素的后面(after)
bottom和top将把这个元素注入到一个选中元素的内部,在元素内最底部或者最顶部。相对地,before和after将把一个元素注入到另外一个元素的顶部或者底部,但是不是注入到元素内部。
因此,让我们把元素顺序改变为A-C-B。由于我们不需要把一个元素注入到另外一个元素的内部,我们可以使用before或者after。
参考代码:

复制代码 代码如下:

// 下面这句的意思是:把元素C放到元素B之前
elementC.inject(elementB, 'before');
// 下面这句的意思是:把元素B放到元素C之后
elementB.inject(elementC, 'after');

创建一个新元素
new Element
你可以使用“new Element”构造器来创建一个行的HTML元素。这和写一个正常的HTML元素非常类似,只不过你需要调整一下语法,以便能够在MooTools下正常运行:
参考代码:
// 首先命名一个变量并声明一个“new Element”
// 然后定义元素的类型(div、a、span...)
var newElementVar = new Element('div', {
// 在这里设置元素的所有属性
'id': 'id_name',
'text': 'I am a new div',
'styles': {
// 在这里设置元素的所有样式参数
'width': '200px',
'height': '200px',
'background-color': '#eee',
'float': 'left'
}
});
现在你就有一个元素了,你可以通过我们刚才学的inject();方法把这个元素放在页面上的某个位置。我们从下面这个简单的HTML开始:
参考代码:
<div id="body_wrap">
<div id="content_id">Some div content</div>
</div>
现在,我们把ID为content_id的元素转换为一个变量:
参考代码:
var bodyWrapVar = $('body_wrap');
和我们刚才学的一样,我们可以把我们创建的这个元素注入到当前的HTML中:
参考代码:
// 这句的意思是说:“把newElementVar注入到bodyWrapVar内部,并放置到顶部”
newElementVar.inject(bodyWrapVar , 'top');
这个代码最终可能是这样的:
参考代码:
<div id="body_wrap">
<!-- 这个元素被注入到内部顶部 -->
<div id="id_name">I am a new div</div>
<div id="content_id">Some div content</div>
</div>

示例
为了这个例子,我们来创建一个表单,可以让你添加一个行元素到你的HTML页面。首先,建立一些文本框和按钮。
参考代码:

复制代码 代码如下:

<div id="body_wrap">
ID: <input id="id_input" name="id" />
text: <input id="text_input" name="text" />
<button id="new_div">创建一个新的div</button>
</div>

现在,我们来用MooTools写JavaScript来实现让这个HTML表单可以插入一个新的元素到你的页面中。首先,我们先给这个按钮添加一个事件,并写一个函数来包含我们的代码:
参考代码:

复制代码 代码如下:

var newDiv = function() {
// 我们将把“添加一个新元素”的代码放在这里
};
window.addEvent('domready', function() {
$('new_div').addEvent('click', newDiv);
});

下一件事我们要做的就是指定我们要处理的变量。要使用输入表单中的数据,我们需要使用.get();方法:
参考代码:

复制代码 代码如下:

var idValue = $('id_input').get('value');
var textValue = $('text_input').get('value');

现在,上面代码中的变量idValue和textValue就包含了它们指定的输入表单的值。由于我们需要在用户点击“创建一个新的div”按钮时获得输入框的值,我们需要把上面的代码放在newDiv();这个函数中。如果我们需要在这个函数外面获得这个值,我们需要在页面加载时获得,而不是点击时。
参考代码:

复制代码 代码如下:

var newDiv = function() {
var idValue = $('id_input').get('value');
var textValue = $('text_input').get('value');
};
window.addEvent('domready', function() {
$('new_div').addEvent('click', newDiv);
});

接下里,我们需要获得我们新元素要插入到的元素:
参考代码:

复制代码 代码如下:

var newDiv = function() {
var idValue = $('id_input').get('value');
var textValue = $('text_input').get('value');
var bodyWrapVar = $('newElementContainer');
};
window.addEvent('domready', function() {
$('new_div').addEvent('click', newDiv);
});

我们已经有了我们的输入表单的值了,现在我们可以创建一个新元素了:
参考代码:

复制代码 代码如下:

var newDiv = function() {
var idValue = $('id_input').get('value');
var textValue = $('text_input').get('value');
var bodyWrapVar = $('newElementContainer');
var newElementVar = new Element('div', {
// 这将设置这个元素的id为idValue的值
'id': idValue,
// 这将设置这个元素的文本为textValue的值
'html': textValue
});
};
window.addEvent('domready', function() {
$('new_div').addEvent('click', newDiv);
});

剩下我们要做的就是把这个新元素插入到我们的页面中了:
参考代码:

复制代码 代码如下:

var newDiv = function() {
var bodyWrapVar = $('newElementContainer');
var idValue = $('id_input').get('value');
var textValue = $('text_input').get('value');
var newElementVar = new Element('div', {
'id': idValue,
'text': textValue
});
// 下面这句是说:“把newElementVar插入到bodyWrapVar的内部顶部”
newElementVar.inject(bodyWrapVar, 'top');
};
var removeDiv = function() {
// 这将删除内部的html值(就是div标记类的所有东西)
$('newElementContainer').erase('html');
}
window.addEvent('domready', function() {
$('new_div').addEvent('click', newDiv);
$('remove_div').addEvent('click', removeDiv);
});

更多学习...

一定要花一些时间看一些MooTools文档中的Elements这一节:

  • Element这一节包含了我们这里讲到的大多数内容,还有很多其它内容
  • Element.style可以给你在元素样式属性上更多的控制权(有些东西我们将在以后的教程中深入讲解)
  • Element.dimentions包含了处理位置、坐标、尺寸大小等东西的工具
时间: 2024-10-24 01:22:03

通过Mootools 1.2来操纵HTML DOM元素_Mootools的相关文章

Mootools 1.2教程(2) DOM选择器_Mootools

如果你还没有准备好,请先阅读上一篇<Mootools 1.2教程(1)--MooTools介绍>.我们讲了怎么引用MooTools 1.2以及怎么在domready里面调用你的脚本. 今天开始本系列教程的第2讲.在这一讲中,我们会学习几种选择HTML元素的方法.在许多方面,这是MooTools用得最多最基本的.毕竟,要创建一个基于HTML元素的交互性用户体验,你必须首先把它们掌握在手中. 基本的方法 $(); $函数是MooTools中基本的选择器.你可以通过它来根据一个ID选择DOM元素.

Jquery源码分析---DOM元素(下)

5.3.2 insert 在IE中提供了insertAdjacentElement()方法,这个方 法比insertBefore()和appendChild()好用.为了保证兼容性,像 prototype,mootools,Ext都提供了一个类似的方法,之后在扩展出四个方法. 分别在元素的前面或后面,元素的内部开始或内部结束处四个地方插入元素. Jquery也一样,提供了domManip(),这个函数和 insertAdjacentElement类似,不同的是它采用回调函数做swhere的类似参

JavaScript获取DOM元素的11种方法总结

  JavaScript获取DOM元素的11种方法总结          这篇文章主要介绍了JavaScript获取DOM元素的11种方法总结,本文用分4大类11个方法总结如何获取DOM元素,需要的朋友可以参考下 在Web应用程序特别是Web2.0程序开发中,经常要获取页面中某个元素,然后更新该元素的样式.内容等.如何获取要更新的元素,是首先要解决的问题.令人欣慰的是,使用JavaScript获取节点的方法有很多种,这里简单做一下总结(以下方法在IE7和Firefox2.0.0.11测试通过):

jQuery操作DOM元素

原文:jQuery操作DOM元素 jQuery操作DOM元素 HTML DOM常见操作: 查找节点,插入节点,删除节点,复制节点,替换节点,包裹节点.   查找节点 关于节点的查找,是利用选择器完成的. 在上一篇jQuery选择器中已经介绍过了:http://www.cnblogs.com/mengdd/p/4211663.html   插入节点 首先看一个例子,用原生的JavaScript如何创建并添加元素: <!DOCTYPE html> <html> <head>

《jQuery Cookbook中文版》——1.10 创建、操作和插入DOM元素

1.10 创建.操作和插入DOM元素 1.10.1 问题 你打算创建一个或者多个新的DOM元素,立刻选中这些元素加以操作,然后把它们注入到DOM中. 1.10.2 解决方案 你可能还不清楚,jQuery函数是多功能的,根据你发送的不同参数结构,一个函数能以不同的方式运行.如果以原始HTML文本字符串为参数调用函数,它将立刻创建这些元素.例如,下列语句将创建一个包装在< p>元素中的< a>元素,在< p>和< a>元素中还封装了一个文本节点: jQuery(

《jQuery Cookbook中文版》——1.13 克隆DOM元素

1.13 克隆DOM元素 1.13.1 问题 你需要克隆/复制DOM的一部分. 1.13.2 解决方案 jQuery提供clone()方法复制DOM元素.它的用法很简单,只要用jQuery函数选择DOM元素,然后在选择的元素集上调用clone()方法就可以了.结果是返回用于链接的DOM结构的一个副本,而不是原来选中的DOM元素.在下面的代码中,将克隆一个< ul>元素,然后用插入方法appendTo()将这个副本附加到DOM中.实际上,在页面上插入了与现有的< ul>完全相同的一个

Mootools 1.2教程(3) 数组使用简介_Mootools

今天,我们在来看看如何使用数组来管理DOM元素.基本方法 .each(); 在处理数组时,.each();方法是你最好的朋友.它提供了一种很容易的方法来遍历数组的每个元素,如果有需要还可以对其中的元素进行任何逻辑处理.例如,我们可以假设你需要为页面中的每个div对象调用alert方法: 参考代码: 复制代码 代码如下: $$('div').each(function() { alert('a div'); }); 如果使用下面的HTML代码,上面的JavaScript代码将弹出两个alert对话

Jquery源码分析---DOM元素(上)

5.1 dom元素的属性 对dom元素的操作,对元素的属性进行操作是很重要的一项.我们可以通过 dom元素的原始方法对元素元素进行操作,但是由于浏览器的兼容等各方面的问 题,jquery和其它的lib一样,都提供了一个完好兼容的操作. 5.1.1 Attr 名称及描述 返回 兼容性 ( ) 当前节点给定Name的属性值     ( , ) 当前节点给定namespace,Name的属性值     ( ) 取当前节点给定name的属性节点.     ( , ) 取当前节点给定namespace,n

Jquery源码分析---DOM元素(中)

5.2.2 width&heigth 对于元素的宽度和高度,dom元素提供了 client(clientHeight,clientWidth).offset(offsetHeight,offsetwidth). scroll(srollHeight,srollWidth)三种方式,这三种有什么区别呢? client=content+padding.Offset=content+padding+border.Scroll的宽度和 高度都是没有经过scroll的原始宽度和高度.也就是这个一般会大于现