具有特定属性的jQuery选择器

时间:2012-06-04 13:49:44

标签: jquery anchor

我有这段代码:

$('a').click(
   function() {
       $("#change_flash").css("display", "block"); $("#my_flash").css("display", "none");
  });

但是这个适用于所有锚元素。我想用这个脚本来影响包含rel =“lightbox”属性的锚点元素。

我怎样才能实现它?

2 个答案:

答案 0 :(得分:5)

$('a[rel="lightbox"]').click(
   function() {
       $("#change_flash").css("display", "block"); $("#my_flash").css("display", "none");
  });

答案 1 :(得分:5)

使用以下内容:

$('a[rel="lightbox"]').click(
    function(){
        // do your stuff here
    });

这是使用attribute="value"表示法(参见参考资料)。

还有其他选择:

  • attribute-starts-with:attribute^="value"
  • attribute-ends-with:attribute$="value",
  • attribute-contains:`attribute * =“value”。

当然,请注意,虽然$('[rel="lightbox"]')本身就是一个绝对有效的选择器,但这会导致jQuery检查页面上的每个元素以获取该属性和值,以便绑定/分配click个事件;因此,最好使用标记名称,因此$('a[rel="lightbox"]')是一个类名,以限制jQuery必须搜索的元素数量以查找匹配的元素。

虽然在现代浏览器中我似乎记得这个'搜索'被移交给本地document.querySelectorAll(),而不是使用Sizzle,但即便如此,最好限制浏览器需要做的工作量。

参考文献: