Поиск видимого элемента класса в родительском элементе [duplicate]

0

Как я могу найти видимый дочерний элемент внутри родителя с jQuery?

Пробовал, например, следующие (и многие другие), которые не работают.

var childelement = $("#parent").find(".child:visible");

В родительском объекте много дочерних элементов, но только одно видно в одно и то же время. Все дочерние элементы определяются с тем же именем класса.

Изменение: в моем коде дочерние элементы определены как видимые или невидимые с атрибутом отображения. Аналогично ниже:

<span class="child" style="display: inline;">One</li>
<span class="child" style="display: none;">Two</li>

РЕШЕНИЕ Поработал с этим:

<div class="child" style="display: inline;">One</li>
<div class="child" style="display: none;">Two</li>
  • 0
    Я добавил еще немного кода в мой пример. Смотри выше.
  • 0
    На самом деле я использовал элемент span в начале. Были проблемы с этим. Поменял его на div и теперь он работает. Я не копировал весь код здесь, потому что он довольно сложный. Теперь это работает. Смотри выше. Спасибо, в любом случае :)
Теги:

3 ответа

1

Вот как вы это делаете:

$('#parent').find(':visible');

jsFiddle

  • 0
    Но я хотел бы найти класс .child, который виден. В #parent могут быть и другие видимые элементы. Ваш код хорош, но он находит все классы внутри #parent, которые видны.
  • 0
    Хорошо, тогда, когда я использую ваш пример, он все еще работает: jsfiddle.net/xqc4v/1
Показать ещё 2 комментария
0

Вы можете сделать это так, Fiddle

$("#parentElement").children(':visible'); 
0

Возможно, что-то вроде:

  • Получить все дочерние элементы класса родительского элемента

    var childElements = $("#parent .child");
    
  • Найдите нужный элемент:

    var foundIt;
    
    childElements.each(function(){ 
    
     if(this.is(':visible')){
    
        foundIt = this;
    
     }
    
    });
    

Рекомендации:

РЕДАКТИРОВАТЬ:

  if(this.is(':inline')){

        foundIt = this;

     }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню