Jquery选择所有已定义accesskey的元素

我想选择所有在其上定义了accesskey的元素。

我知道我可以这样做: $('[accesskey]') ,但在页面上给了我很多输入,hrefs等(大多数都有一个空的访问键)。

只选择accesskey实际具有值的元素的方法是什么?

编辑:我发现空访问键的原因,也是由多个modal dialog上的一些旧的禁用/恢复accesskeys javascript函数引起的…通常你不会得到那么多带有空访问键的元素

有一个选择器:

 $('[accesskey][accesskey!=""]').foo 

它是如何工作的:

 // Has the accesskey attribute defined. [accesskey] // Doesn't have an empty value for the accesskey attribute. [accesskey!=""] 

一起选择具有accesskey属性的每个元素,它不是空的。

你可以这样做

 $('[accesskey]').filter(function(){ return $(this).prop('accessKey'); }); 

.filter()或者像其他人已经说过你可以使用attribute-not-equal-selector

工作样本

你可以使用和额外的循环

 $("[accesskey]").each(function() { if($(this)).attr('accesskey').length > 0) { // do it } } 

我希望它会对你有所帮助