2015-04-14 4 views
2

У меня есть следующий HTML-код:Получение идентификатора DIV, который в настоящее время отображается

<div id="skills"> 
    <div class="items" id="items1" style="display:none">1</div> 
    <div class="items" id="items2" >2</div> 
    <div class="items" id="items3" style="display:none">3</div> 
    <div class="items" id="items4" style="display:none">4</div> 
    <div class="items" id="items5" style="display:none">5</div> 
</div> 

Мне нужно получить доступ к div, который в настоящее время отображается и получить его id. Пожалуйста, дайте мне знать, как я могу это сделать?

ответ

1

Вы можете использовать .not(), которые удалить элементы из набора соответствующих элементов.

var divId = $("div.items").not(":hidden").prop("id"); 

Working Demo

+0

В чем разница между использованием «attr» и «prop» в конце. – key2learn

+0

И спасибо всем. Все ответы полезны и добавлены к моему обучению. – key2learn

+1

Разница между атрибутами и свойствами может быть важной в определенных ситуациях. Перед jQuery 1.6 метод .attr() иногда учитывал значения свойств при извлечении некоторых атрибутов, что может привести к непоследовательному поведению. Начиная с jQuery 1.6, метод .prop() предоставляет способ явного извлечения значений свойств, в то время как .attr() извлекает атрибуты. Подробнее, https://api.jquery.com/prop/ –

4

Вы можете использовать селектор :visible:

var visibleId = $('.items:visible').prop('id'); // = 'items2' 
2

JQuery имеет специальный :visible селектор. Вы можете использовать это для соответствия любому элементу, который отображается.

https://api.jquery.com/visible-selector/

Элементы считаются видимыми, если они потребляют пространство в документе. Видимые элементы имеют ширину или высоту, которая больше нуля.

Элементы с visibility: hidden или opacity: 0 считаются видимыми, так как они все еще потребляют пространство в макете.

Так, чтобы использовать это в вашем случае, вы бы что-то вроде этого:

var desired_id = $('.items:visible').prop('id'); 

Имейте в виду, что если более чем один элемент сопоставляется с помощью .items:visible, вы получите только первый совпадающий элемент id и не все из них.

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