2016-09-12 3 views
0

Я пытаюсь выбрать все элементы с tabindex размером более -1 (элементы с возможностью фокусировки). До сих пор это то, что я придумал:CSS-селектор для элементов «tabindex> 0»

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

Это не работает, но вместо этого выдает ошибку:

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

Это, однако, работает, но itdoes не распространяется на случаи, когда TabIndex < -1.

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

ответ

5

Selectors doesn't provide attribute selectors with numeric comparisons, а также нет jQuery.

В данном конкретном случае, я полагаю, вы могли бы просто исключить элементы с TabIndex начиная с - знака (в дополнение к за исключением элементов с TabIndex из 0):

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

Еще лучше было бы "не начинать с", или ': нет ([TabIndex = "-"])' –

+0

@Niet Темному Absol: запамятовал, спасибо. – BoltClock

2

Вы можете использовать filter для это:

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

да, но в моем случае я хочу иметь такое селекторное выражение, которое так позже, я могу поместить его в константу вместе с другими выражениями, такими как [[contentEditable = true] ',' a [href] ',' input: not ([disabled]) 'и т. д.) –

+2

В этом вопросе говорится: «* Я пытаюсь выбрать все элементы, которые имеют [sic] tabindex больше -1 *". В вопросе о объединении выражений или использовании его в качестве переменной не было ** ничего **. Рад, что вы получили то, что вам нужно, но, пожалуйста, укажите все ваши требования в будущих вопросах. –

Смежные вопросы