2012-06-04 298 views
6

我有这样的代码:jQuery选择具有特定属性

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

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

我该如何实现它?

+0

搜索发现http://stackoverflow.com/q/6246683/411902 –

回答

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

使用以下:

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

这是使用attribute="value"符号(请参阅参考资料)。

有,另外,其他的选项:

  • 属性开始-用:attribute^="value"
  • 属性端-用:attribute$="value",
  • 属性包含:`属性* = “值” 。

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

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

参考文献:

+0

该死的,所以容易:)感谢名单 – David

+1

你是绝对欢迎;我很高兴得到了一些帮助! =) –