jQuery按属性值过滤

 

我有一系列链接。 每个链接都有一个attributeid属性。 我想按属性值过滤。 所以在上面的链接中,如果我的值为41,它将返回中间名链接。

 var link = $('.selectedColumns a:[attributeid==' + $(this).val() + ']'); 

这没用?

使用单个=而不是2.此外,:不应该在那里

 var link = $('.selectedColumns a[attributeid=' + $(this).val() + ']'); 

不要声称这更优雅,但在集合上使用filter()可以更灵活地匹配,并且比字符串连接更不容易出错。

 var matching = $('.selectedColumns a').filter(function(){ return $(this).attr('attributeid') == 41 }); matching.prop('selected', true); 

在属性等于选择器中不需要:或double = ,它应该只是:

 $('.selectedColumns a[attributeid=' + $(this).val() + ']'); 

此外,如果您使用的是无效属性,请考虑使用在HTML5 有效的data-属性 ,例如data-id而不是attributeid