2.4 属性选择符
2.4 属性选择符
属性选择符是CSS
选择符中特别有用的一类选择符。顾名思义,属性选择符通过HTML
元素的属性选择元素,例如链接的title
属性或图像的alt
属性。例如,要选择带有alt
属性的所有图像元素,可以使用以下代码:
1 | $('img[alt]') |
为链接添加样式
属性选择符使用一种从正则表达式中借鉴来的通配符语法,
- 以
^
表示值在字符串的开始, - 以
$
表示值在字符串的结尾。 - 用星号
*
表示要匹配的值可以出现在字符串中的任意位置, - 用叹号
!
表示对值取反。
假设我们想以不同的文本颜色来显示不同类型的链接,那么首先要在样式表中定义如下样式:
1 | a { |
然后,可以使用jQuery
为符合条件的链接添加3个类:mailto
、pdflink
和henrylink
。
要为所有电子邮件链接添加类,需要构造一个选择符,用来寻找所有带href
属性([href]
)且以mailto
开头(^="mailto:"
])的锚元素(a)。结果如代码清单2-3所示。
1 | $(document).ready(function() { |
因为我们在页面的样式表中定义了相应的规则,所以页面中所有mailto:
链接的后面都会出现一个信封图标,如图2-5所示。
要为所有指向PDF
文件的链接添加类,需要使用美元符号($)而不是脱字符号(^) 。这是因为我们要选择所有href
属性以.pdf
结尾的链接,如代码清单2-4所示。
1 | $(document).ready(function() { |
因为有已经定义的样式表规则,新添加的pdflink
类也会导致每个PDF
文档链接后面出现Adobe Acrobat
图标,如图2-6所示。
属性选择符也可以组合使用。例如,可以为href
属性即以http
开头且任意位置包含henry
的所有链接添加一个henrylink
类,如代码清单2-5所示。
1 | $(document).ready(function() { |
在把这3个类应用到3种类型的链接之后,应该看到如图2-7所示的结果。
我们注意到,在这个屏幕截图中,Hamlet
链接右侧有一个PDF
图标,email
链接旁边有一个信封图标,而Henry V
链接则带有白色背景和黑色边框。