找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2476|回复: 2

[教程] JavaScript框架比较:选择器

[复制链接]
发表于 2012-1-13 22:08:40 | 显示全部楼层 |阅读模式 来自 中国–江苏–南京
选择器
大多数JavaScript框架可实现某种形式的快速元素选择。一般来说,这些选择器使获取一个元素的引用更加快捷,并允许你通过ID、class、元素类型或一些伪类选择符来选取元素。
例如,使用通常的JavaScript,你可以使用下面的代码借助ID来取得DOM元素。
  1. var theElement = document.getElementById('the_element');
复制代码

与其他几个框架一样,MooTools提供了一个执行该操作的快捷方法。除了选择元素,MooTools通过自己一系列的功能函数扩展了元素。
  1. var theElement = $('the_element');
复制代码

$函数在几个流行的框架(并非全部)中可用,其语法大致相同。Prototype更深一层,通过ID在任何时候可以选择多个元素,返回的是一个元素数组。与
MooTools一样,这些元素利用Prototype的实用函数扩展。利用Prototype库在任何时候选择多个元素的语法是这样的:
  1. var elementArray = $('element_one', 'element_two', 'element_three');
复制代码

在实用函数这一部分,你将了解到JavaScript框架提供的一些函数迭代我们的集合更加容易。
在前面的例子,你必须提供你欲选择元素的ID。但是,你要选择多个元素该怎么办?所有image、拥有特定className的表格的每一行。MooTools(其它的几个库)提供了一个非常简单的方法来做到这一点--$$函数。除了元素的ID外,他还可以接受以下参数:元素的名字、类名以及伪类选择器,其工作原理与$函数相似。例如,使用MooTools获取页面上所有的图片,你可以使用下面的代码:
  1. var allImages = $$('img');
复制代码

这将得到文档中所有imag的数组,每一个通过$函数和其实用函数进行扩展。
通过tag标签来选取对象是非常有用的,但如果你只想基于元素的class选取它的部分子集,遮盖怎么办?同样很简单。在下面的例子中,MooTools将选择table中class为“odd”的行,这在对每行进行操作时很有用(交替变换表格每一行的颜色)。
  1. var allOddRows = $$('tr.odd');
复制代码

事实上,MooTools提供了一个更好的方法执行行操作。在前面的例子中,假定table的奇数行授予了类名“odd”。那么下面的代码不需要在table的每一行上定义任何类名。
  1. var allOddRows = $$('tbody <IMG class=wp-smiley alt=:o src="http://www.denisdeng.com/wp-includes/images/smilies/icon_surprised.gif"> dd');
复制代码

这是一个伪类选择器的例子,它返回匹配规范的任何对象。在这个例子中,结果为页面中tbody元素中所有奇数行的子元素。MooTools其它伪类元素的例子包括:
  • checked 所有被选中的元素(例如:选中的复选框);
  • enabled 所有可用的元素;
  • contains 所有包含文本(作为参数传递给选择器)的元素。
如前所述,并非所有的JavaScript框架都使用$函数来选取DOM元素。在YUI(Yahoo用户界面)的第三个版本中,下面的代码是通过ID来选取元素的(注意:YUI3需要在ID前加上字符#)。
  1. var theElement = Y.one('#the_element');
复制代码

同样,通过tag或class来选取元素也不是使用$$函数,在YUI中你要使用Y.all来代替。
  1. var allOddRows = Y.all('tr.odd');
复制代码

ExtJS以同样的方式工作,通过ID选择元素用下面的语法:
  1. var theElement = Ext.get('the_element') ;
复制代码

而通过tag和class来获取元素则用下面的语法:
  1. var allOddRows = Ext.select('tr.odd');
复制代码

评分

参与人数 1金币 +1 收起 理由
光明使者 + 1 很给力!

查看全部评分

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

 楼主| 发表于 2012-1-13 22:09:53 | 显示全部楼层 来自 中国–江苏–南京
我初学js,一般js上来第一局就是var,今天看了了教程,原来是申明变量,然后什么选择器,发上来共享下

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

发表于 2013-3-21 11:47:48 | 显示全部楼层 来自 中国–广东–湛江
呵呵~~~路过看看

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-11-19 12:19 , Processed in 0.048841 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表