getElementsByAttribute

作者:司徒正美 来源:Ruby's Louvre 时间:2009-10-27 12:13:00 

这个可以说属性选择符的JS版,用来遴选元素是适合不过。在开始之前,我们复习一下CSS2的属性选择符,JQuery高手可以跳过。

属性选择符:

名称语法描述例子
Simple Attribute Selector[Attr] 或者tagName[Attr]选择具有此属性的元素blockquote[title] { color: red }
Attribute Value Selector[Attr="value"] 或者tagName[Attr="value"]选出属性值精确等于给出值的元素h2[align="left"] { cursor: hand }
"Begins-with" Attribute Value Selector[Attr^="value"] 或者tagName[Attr^="value"]选出属性值以给出值开头的元素h2[align^="right"] { cursor: hand }
"Ends-with" Attribute Value Selector[Attr$="value"] 或者tagName[Attr$="value"]选出属性值以给出值结尾的元素div[class$="vml"]{behavior: url(#VMLRender)}
Substring-match Attribute Value Selector[Attr*="value"] 或者tagName[Attr*="value"]选出属性值包含给出值的元素div[class*="grid"]{float:left}
One-Of-Many Attribute Value Selector[Attr~="value"] 或者tagName[Attr~="value"]原元素的属性值为多个单词,给出值为其中一个。li[class~="last"]{padding-left:2em}
Hyphen Attribute Value Selector[Attr|="value"] 或者tagName[Attr|="value"]原元素的属性值等于给出值,或者以给出值加“-”开头span[lang|="en"]{color:green}
反选属性值选择器[Attr!="value"] 或者tagName[Attr!="value"]非标准,jQuery中出现的span[class!="red"]{color:green}

当然属性值不定要用双引号,也可以用单引号,或干脆不写。属性值可以是字母,数字,或者gb2312等编码的文字,总之,平时怎样命名变量,也应该怎样命名此属性值。如,我们可以用中文来命名变量,因此同样的事出在属性值上也没有问题。如果属性值是"#"就肯定所错,因为变量名也不能这样用。不过建议尽量用英文单词。

好了,是getElementsByAttribute的表演时间了,比网上的同名函数强大得多了。传入两个参数,第一个是字符串,必选,就是CSS2的属性选择符,由于是字符串,里面就不要加双引号与单引号了,我也懒得匹配它。第二个是元素节点,可选,从来加快查找速度,默认是document。不过自从IE8等支持querySelector与querySelectorAll后,jQuery的选择器基本只剩下半条命,也只能在IE6,IE7这些要啥没啥的非标准浏览器作威作福罢了。因此,如果检测到浏览器支持querySelectorAll,就调用该原生方法,否则就全文档遍历匹配。

最后切记,如果要使用到属性值,不要把属性值用引号引起来,直接放到等于号后面即可。放一些测试页面,让大家看看如何使用此函数。


标签:JQuery,选择符,getElementsByAttribute
0
投稿

猜你喜欢

  • 用户研究角度看设计(2):用户为何视若无睹

    2009-01-09 12:51:00
  • asp如何用数据库制作一个多用户版的计数器?

    2010-06-16 09:51:00
  • 随机6+1选号码摇奖程序

    2008-07-18 13:15:00
  • 如何使用数据绑定控件实现不换页提交数据?

    2010-05-16 15:17:00
  • ASP Application 对象用户手册

    2008-10-23 13:59:00
  • 网站细节论(1)--阅读的细节

    2007-12-21 12:16:00
  • 如何在Win下mysql备份恢复命令

    2010-03-03 17:23:00
  • 关于大批量数据高效插入方法

    2010-07-31 19:07:00
  • DW CS4初步试用感受

    2008-05-30 12:17:00
  • 利用Yahoo Pipes和jQuery做一个RSS挂件

    2010-06-08 13:40:00
  • getAllResponseHeaders获取网页的http头信息代码

    2010-03-31 14:31:00
  • AJAX应用之草稿自动保存

    2007-08-23 08:29:00
  • asp sql数据验证之特殊字符处理

    2008-02-24 16:35:00
  • 网址导航的组织方法

    2008-09-27 12:35:00
  • rs.open sql,conn,1,1与rs.open sql,conn,1.3还有rs.open sql,conn,3,2区别

    2011-02-24 10:49:00
  • ORACLE数据库应用开发常见问题及排除

    2010-07-26 13:17:00
  • SQL Server 2000里的数据类型

    2011-06-11 14:07:00
  • 淘宝首页代码调整

    2011-04-22 12:44:00
  • 类似google的ASP分页代码[测试通过]

    2009-03-13 12:43:00
  • 使用SQL语句,查第10-20条记录

    2008-02-19 18:34:00
  • asp之家 网络编程 m.aspxhome.com