2

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

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

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

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

4

3 回答 3

2

使用一个选择器:

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

它是如何工作的:

// Has the accesskey attribute defined.
[accesskey]

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

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

于 2012-06-15T09:34:07.377 回答
1

你可以这样做

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

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

工作样本

于 2012-06-15T09:30:50.700 回答
0

你可以使用和额外的循环

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

我希望它会帮助你

于 2012-06-15T09:33:19.793 回答