CSS "tabindex > 0" 个元素的选择器

CSS selector for "tabindex > 0" elements

我正在尝试 select 所有 tabindex 大于 -1 的元素(可聚焦元素)。到目前为止,这是我想出的:

$element.find('[tabindex]:not([tabindex < \'0\'])');

它不起作用,而是抛出一个错误:

Error: Syntax error, unrecognized expression: [tabindex < '0']
    at Function.Sizzle.error (vendor.js:1463)
...

然而,这有效,但不包括 tabindex < -1 的情况。

$element.find('[tabindex]:not([tabindex=\'-1\'])');

Selectors doesn't provide attribute selectors with numeric comparisons,jQuery.

也不行

在这种特定情况下,我想您可以只排除 tabindex 以 - 符号开头的元素(除了排除 tabindex 为 0 的元素):

$element.find('[tabindex]:not([tabindex="0"]):not([tabindex^="-"])');

您可以为此使用 filter

$("[tabindex]").filter(function() {
    return parseInt($(this).attr("tabindex"), 10) >= 0;
})

使用 ES6 的现代解决方案(没有 jQuery)可能关注的人:

Array.from(document.querySelectorAll('[tabindex]')).filter((el) => {
    return el.tabIndex >= 0;
})