2009-03-25 3 views
24

Как я могу выбрать <span>, где display установлен в none в нижеследующем коде?В jQuery, как я могу выбрать скрытый элемент?

<p id="p1"> 
<span id="test1" style="display:none">test1</span> 
<span id="test2" >test2</span> 
</p> 

я могу выбрать <span>, чей идентификатор «test1» с помощью $("span[id='test1']"), но она не работает, когда я использую $("span[style='display:none']").

Есть ли способ получить этот элемент за раз?

Большое спасибо.

+0

Посмотрите здесь также https://api.jquery.com/hidden-selector/ –

ответ

42

Вы ищете :hidden селектор

Обратите внимание, что правильный способ выбора элемента по ID просто:

$("#test1"); 

Действовать так, как вы делаете делаете JQuery делать ненужный разбор и намного медленнее.

Если вы хотите выбрать #test1 только если она скрыта, вы делаете это:

$("#test1:hidden"); 

Если вы хотите, чтобы выбрать все <span> элементы, которые скрыты под #p1, вы делаете это:

$("span:hidden", "#p1"); 

Как указано в комментариях, противоположным этим селектором является переключатель :visible:

$("span:visible", "#p1"); 

Затем выберете любые видимые элементы <span> в элементе #p1.

+0

просто для того, чтобы отметить, существует также противоположное для поиска видимых элементов -: visible –

+0

Достаточно справедливо. Добавлено в ответ. :) –

+2

Это, очевидно, изменилось. В документации теперь говорится: «Элемент считается скрытым, если он или его родители не занимают места в документе. Видимость CSS не учитывается». – cweston

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