我正在对一些逻辑进行重构,然后遇到了这段代码,我仍在尝试理解它
try {
$('a[@rel*=lightbox]').lightBox();
} catch (e) {}
我理解try catch部分,但这部分是什么意思?
('a[@rel*=lightbox]')
我正在对一些逻辑进行重构,然后遇到了这段代码,我仍在尝试理解它
try {
$('a[@rel*=lightbox]').lightBox();
} catch (e) {}
('a[@rel*=lightbox]')
这是使用旧版XPath的方法来表示查找带有lightbox
作为rel
属性值的锚点。因此,它将匹配像下面例子中的锚点...
<a href="http://example.com/image.jpg" alt="image" rel="external me lightbox">Link</a>
该方法已被废弃,并在jQuery新版本中移除。要使其与最新的版本兼容,只需删除@
符号即可:
$('a[rel*=lightbox]')
有一种更好的方法来编写这个选择器。
$('img[rel="lightbox"]')
这将选择任何带有“lightbox”关系的图像标签。如果您已经正确地包含了所有脚本,就不需要使用try语句,它应该可以正常工作。
它选择所有包含属性rel中的lightbox的链接
它正在查找页面上具有 somelink 的链接,以启动一个 lightbox 窗口。
$('a[rel~=lightbox]').lightBox();
而不是使用*=
, 因为~=
查找整个单词lightbox
, 而*=
只查找子字符串,例如,“notalightbox”将包含在*=
方法中。 - Joshua Pinter