YUI中使用最多的组件之一就是dom组件(YAHOO.util.Dom)了,看它的名字就能够大概猜到这个组件的功能了。没错,它就是封装了一下一些原生的DOM方法,并简化了一些常用的操作,而且更重要的是使用YUI的dom组件不必考虑浏览器之间的差异——这些事情YUI都帮你做好了。
在使用dom组件之前,你必须先引入dom组件的js文件:
1
2
3
4
5
|
<!-- Dependencies -->
<script src="http://yui.yahooapis.com/2.6.0/build/yahoo/yahoo-min.js"></script>
<!-- Source file -->
<script src="http://yui.yahooapis.com/2.6.0/build/dom/dom-min.js"></script>
|
或者使用YUI Loader动态引入。
下面介绍一下dom组件的一些方法。
1. get() 。这个方法类似于document.getElementById(),不过它除了接受元素的id作为参数以外,还可以接受一个id数组,比如 get(["id1", "id2"])
2. getAncestorByClassName()。这个方法用来根据元素class的属性值来获取父节点,比如有下面一段代码:
1
2
3
|
<div id="div1">
<p class="text">Some text.</p>
</div>
|
那么 getAncestorByClassName(’text’) 获取到的就是 id 为 div1 的节点。
3. getFirstChild() 和 getLastChild() 。分别用来获取第一个子节点和最后一个子节点。
4. getNextSibling() 和 getPreviousSibling() 。分别用来获取下一个兄弟节点和前一个兄弟节点。
5. insertBefore( 新节点 , 参考节点id) 和 insertAfter( 新节点 , 参考节点id) 。在参考节点后面插入一个新节点。原生的DOM方法只有 insertBefore,有时候很不方便。
6. getXY() 和 setXY() 。分别用来获取和设置节点在文档坐标系中的坐标。getXY()接受节点的id作为参数,比如:getXY(”id”) ,它返回一个数组[x, y],分别是节点的横坐标和纵坐标。而setXY()需要两个参数,第一个参数是要进行设置的节点的id,第二个是一个坐标数组,比如:setXY(”id”, [x,y]);
7. getStyle() 和 setStyle()。分别用来获取和设置节点的样式。getStyle()需要两个参数,第一个参数是元素的id,第二个参数是样式的名称,比如:getStyle(”id”, “background”) ,它返回指定样式的值。而setStyle() 则需要三个参数,前两个参数和 getStyle() 相同,第三个参数是要设置的值,比如: setStyle(”id”, “color”, “red”) 。这两个方法帮我们解决了一些很琐碎的问题,因为浏览器对CSS的支持都不一样,所以在设置样式的时候就比较麻烦,比如IE没有opacity属性,而是用滤镜实现的半透明效果,setStyle()方法就不再让我们去关心浏览器之间的差异,可以专心处理逻辑。
8. getElementsByClassName() 。顾名思义,这个方法是用来根据元素的class的值来获取节点的。它有三个参数,第一个参数是class的值,第二个参数是要取得的标签的名字(比如div),第三个参数是开始的根节点。比如 getElementsByClassName(”classname”, “div”, “root”),这样就是从id为root的节点开始,获取所有class的值中包含 classname的DIV标签。第三个参数是可选的。
9. 其他方法自己去看API文档吧,我就不多说了。
最后补充一点,其实上面很多东西我写得都有bug,就是上面的所有方法,一般来说只要接受元素的id作为参数,那么该参数也可以是一个节点对象。因为除了get()方法本身,其它的方法内部都是使用get()方法来获取要处理的节点。咱们来看一下dom组件中 get() 方法的源码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
get: function(el) {
if (el) {
if (el.nodeType || el.item) { // Node, or NodeList
return el;
}
if (typeof el === 'string') { // id
return document.getElementById(el);
}
if ('length' in el) { // array-like
var c = [];
for (var i = 0, len = el.length; i < len; ++i) {
c[c.length] = Y.Dom.get(el[i]);
}
return c;
}
return el; // some other object, just pass it back
}
return null;
}
|
看了源码我想大家应该都清楚了,如果这个el本身就是个节点对象的话,get()方法就不会对其进行处理,而是直接返回。
以后有空多看看YUI的源码,多学习一些其中的思想。
分享到:
相关推荐
是一组工具和控件,用JavaScript写成, 为的是用DOM 脚本,DHTML和AJAX等技术创建丰富的网页交互式应用程序。 YUI 基于BSD协议,对所有的使用方式都是免费的。YUI 项目包括YUI 库和两个创建时工具: YUI Compressor ...
这篇学习笔记主要介绍了 Yui_ext 的基础知识,适合对 JavaScript 和 HTML DOM 有一定了解的初学者。 首先,了解 Ext 库的基本概念。Ext 提供了一个强大的框架,用于创建具有丰富用户体验的网页应用,其核心是 ...
适合图灵程序设计丛书web开发系列-javascript基础教程的学习使用
《YUI使用文档》汉语版是一份详细的YUI学习材料,它涵盖了这个JavaScript库的核心功能和使用方法。YUI,全称Yahoo! User Interface Library,是Yahoo开发的一个开放源代码的JavaScript库,旨在帮助开发者创建交互式...
1. **DOM操作**:YUI的Node和Selector模块提供了高效的DOM操作接口,包括选择、操作、遍历DOM元素。 2. **Ajax**:IO模块用于实现异步数据请求,支持JSONP、XHR等通信方式。 3. **表格与表单**:DataTable和Form模块...
YUI 2 is a JavaScript and CSS library with more than 30 unique components including low-level DOM utilities and high-level user-interface widgets. Currently at version 2.9.0, YUI 2 is robust, proven, ...
通过“yui3-master.zip”中的“dom”源码,我们可以深入学习如何高效地操作DOM。 4. **Node模块** YUI3的Node模块是对DOM操作的进一步抽象,它提供了一种链式调用的方式,使DOM操作更为简洁。在“yui3-master.zip...
YUI资料 雅虎 用户接口库 中文说明及如何使用学习 Yui组件分成2类:工具包和控件库 Yui 工具包 Yui 工具包利用DOM脚本来简化...DOM:DOM工具包提供更简单的DOM脚本的功能调用方式,包含元素的位置和CSS样式的管理。
包裹名称: YUICompressor.NET CLI: install-package YUICompressor.NET 主要特点 压缩和/或捆绑Javascript和/或级联StyleSheets。 1个源文件-> 1个目标文件(仅压缩) 多个源文件-> 1个目标文件(压缩和捆绑) ...
YUI 2.6.0r2版本在当时的JavaScript社区中占有重要地位,它提供了大量的可重用模块,涵盖了DOM操作、事件处理、动画效果、Ajax交互、CSS样式管理、数据处理等多个领域。这个版本修复了之前的一些已知问题,增强了...
YUI(Yahoo! User Interface Library)是Yahoo开发的一个开源JavaScript库,主要用于构建富互联网应用程序(RIA)。...无论你是初学者还是经验丰富的开发者,这个压缩包都能为你的YUI学习之路提供有力的支持。
**YUI:Yahoo! User Interface Library** YUI是雅虎公司开发的一个开源JavaScript库,它为Web开发者提供了丰富的工具和组件,以构建高效、可扩展的网页应用。这个压缩包"YUI.rar"包含了YUI的源代码以及相关的HTML和...
:waving_hand: 嗨,我是@ yui-dl :eyes: 我对人工智能感兴趣 :seedling: 我目前正在学习计算机科学 :revolving_hearts: 我希望在有关TTS,问答和其他有趣主题的深度学习项目中进行合作! :closed_mailbox_with_...
与jQuery相似,YUI提供了一套完整的解决方案,包括DOM操作、事件处理、动画效果、Ajax交互以及模块化开发等。 YUI的核心理念是模块化,这意味着你可以按需引入所需的组件,降低页面加载负担。它通过`yui.yahooapis....
《yuicompressor-2.4.8.jar:前端优化与代码压缩的艺术》 在Web开发领域,优化前端性能是一项至关重要的任务,而yuicompressor-2.4.8.jar正是这样一款强大的工具,专为JavaScript代码压缩而设计,助力开发者实现...
8. **API文档**:YUI3.7.3附带的API文档详细阐述了每个模块的功能和用法,是开发者学习和使用YUI的重要参考资料。 9. **响应式设计支持**:YUI3包含了一些工具,如Resize Utility,帮助开发者实现响应式设计,使...
《深入理解YUI:基于“yui.rar 例子”的解析》 YUI,全称Yahoo! User Interface Library,是雅虎公司推出的一款开源JavaScript库,旨在帮助开发者构建高性能、易于维护的网页应用。本篇文章将结合“yui.rar 例子”...
在提供的"examples"目录中,包含了YUI 2.9的各种示例代码,开发者可以通过查看和运行这些例子,了解和学习如何使用YUI的功能。例如,可以探索DOM操作的例子,理解如何选择、添加或修改元素;在动画示例中,可以看到...
总之,YUI3.6文档及示例的压缩包是开发者学习和掌握YUI的绝佳资料,无论你是新手还是有经验的开发者,都能从中受益。通过深入研究这个包,你将能够利用YUI的强大功能,创建出高效、美观且用户体验优秀的Web应用。
用户可以通过这个文件快速查找和学习 YUI 2.7 中文 API 的各种功能,无需互联网连接。 **三、使用 YUI 2.7 开发** 在实际开发中,你可以根据项目需求,选择合适的 YUI 模块。例如,如果需要处理页面上的点击事件,...