`
wankunde
  • 浏览: 162989 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

YUI 学习笔记:YUI Dom

阅读更多

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的源码,多学习一些其中的思想。

分享到:
评论

相关推荐

    yui_2.9.0前端UI

    是一组工具和控件,用JavaScript写成, 为的是用DOM 脚本,DHTML和AJAX等技术创建丰富的网页交互式应用程序。 YUI 基于BSD协议,对所有的使用方式都是免费的。YUI 项目包括YUI 库和两个创建时工具: YUI Compressor ...

    Yui_ext 学习笔记

    这篇学习笔记主要介绍了 Yui_ext 的基础知识,适合对 JavaScript 和 HTML DOM 有一定了解的初学者。 首先,了解 Ext 库的基本概念。Ext 提供了一个强大的框架,用于创建具有丰富用户体验的网页应用,其核心是 ...

    yui_2.9.0用于javascript基础教程

    适合图灵程序设计丛书web开发系列-javascript基础教程的学习使用

    《YUI使用文档》汉语版的yui学习材料

    《YUI使用文档》汉语版是一份详细的YUI学习材料,它涵盖了这个JavaScript库的核心功能和使用方法。YUI,全称Yahoo! User Interface Library,是Yahoo开发的一个开放源代码的JavaScript库,旨在帮助开发者创建交互式...

    yui 资源包

    1. **DOM操作**:YUI的Node和Selector模块提供了高效的DOM操作接口,包括选择、操作、遍历DOM元素。 2. **Ajax**:IO模块用于实现异步数据请求,支持JSONP、XHR等通信方式。 3. **表格与表单**:DataTable和Form模块...

    YUI类库2.9.0下载download

    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

    通过“yui3-master.zip”中的“dom”源码,我们可以深入学习如何高效地操作DOM。 4. **Node模块** YUI3的Node模块是对DOM操作的进一步抽象,它提供了一种链式调用的方式,使DOM操作更为简洁。在“yui3-master.zip...

    雅虎 用户接口库YUI

    YUI资料 雅虎 用户接口库 中文说明及如何使用学习 Yui组件分成2类:工具包和控件库 Yui 工具包 Yui 工具包利用DOM脚本来简化...DOM:DOM工具包提供更简单的DOM脚本的功能调用方式,包含元素的位置和CSS样式的管理。

    YUICompressor.NET:Yahoo!的Java YUICompressor移植到.NET

    包裹名称: YUICompressor.NET CLI: install-package YUICompressor.NET 主要特点 压缩和/或捆绑Javascript和/或级联StyleSheets。 1个源文件-&gt; 1个目标文件(仅压缩) 多个源文件-&gt; 1个目标文件(压缩和捆绑) ...

    yui_2.6.0r2

    YUI 2.6.0r2版本在当时的JavaScript社区中占有重要地位,它提供了大量的可重用模块,涵盖了DOM操作、事件处理、动画效果、Ajax交互、CSS样式管理、数据处理等多个领域。这个版本修复了之前的一些已知问题,增强了...

    yui最新版,api example docs

    YUI(Yahoo! User Interface Library)是Yahoo开发的一个开源JavaScript库,主要用于构建富互联网应用程序(RIA)。...无论你是初学者还是经验丰富的开发者,这个压缩包都能为你的YUI学习之路提供有力的支持。

    YUI.rar_html_javascript YUI_yui_yui javascript

    **YUI:Yahoo! User Interface Library** YUI是雅虎公司开发的一个开源JavaScript库,它为Web开发者提供了丰富的工具和组件,以构建高效、可扩展的网页应用。这个压缩包"YUI.rar"包含了YUI的源代码以及相关的HTML和...

    yui-dl:我的GitHub个人资料的配置文件

    :waving_hand: 嗨,我是@ yui-dl :eyes: 我对人工智能感兴趣 :seedling: 我目前正在学习计算机科学 :revolving_hearts: 我希望在有关TTS,问答和其他有趣主题的深度学习项目中进行合作! :closed_mailbox_with_...

    YUI js方法使用列子

    与jQuery相似,YUI提供了一套完整的解决方案,包括DOM操作、事件处理、动画效果、Ajax交互以及模块化开发等。 YUI的核心理念是模块化,这意味着你可以按需引入所需的组件,降低页面加载负担。它通过`yui.yahooapis....

    yuicompressor-2.4.8.jar

    《yuicompressor-2.4.8.jar:前端优化与代码压缩的艺术》 在Web开发领域,优化前端性能是一项至关重要的任务,而yuicompressor-2.4.8.jar正是这样一款强大的工具,专为JavaScript代码压缩而设计,助力开发者实现...

    YUI3.7.3 最新版本 带API

    8. **API文档**:YUI3.7.3附带的API文档详细阐述了每个模块的功能和用法,是开发者学习和使用YUI的重要参考资料。 9. **响应式设计支持**:YUI3包含了一些工具,如Resize Utility,帮助开发者实现响应式设计,使...

    yui.rar 例子

    《深入理解YUI:基于“yui.rar 例子”的解析》 YUI,全称Yahoo! User Interface Library,是雅虎公司推出的一款开源JavaScript库,旨在帮助开发者构建高性能、易于维护的网页应用。本篇文章将结合“yui.rar 例子”...

    yui2.9

    在提供的"examples"目录中,包含了YUI 2.9的各种示例代码,开发者可以通过查看和运行这些例子,了解和学习如何使用YUI的功能。例如,可以探索DOM操作的例子,理解如何选择、添加或修改元素;在动画示例中,可以看到...

    YUI3.6文档及示例

    总之,YUI3.6文档及示例的压缩包是开发者学习和掌握YUI的绝佳资料,无论你是新手还是有经验的开发者,都能从中受益。通过深入研究这个包,你将能够利用YUI的强大功能,创建出高效、美观且用户体验优秀的Web应用。

    Yahoo YUI2.7中文API 完整版

    用户可以通过这个文件快速查找和学习 YUI 2.7 中文 API 的各种功能,无需互联网连接。 **三、使用 YUI 2.7 开发** 在实际开发中,你可以根据项目需求,选择合适的 YUI 模块。例如,如果需要处理页面上的点击事件,...

Global site tag (gtag.js) - Google Analytics