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;
})
我正在尝试 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;
})