Выберите источник изображения в списке со стилем в jQuery

0

У меня этот код в HTML:

<div id="thumbs_list">
    <ul id="thumbs_list_frame">
        <li id="thumbnail_260" style="display: none;">...</li>
        <li id="thumbnail_261" style="display: none;">...</li>
        <li id="thumbnail_262" style="display: none;">...</li>
        <li id="thumbnail_264" style="display: list-item;">
            <a href='mywebsite.com'>
                <img src="myphoto.png" alt="Photo"/>
            </a>
        </li>
        <li id="thumbnail_266" style="display: none;">...</li>          
    </ul>
</div>

Я ищу, чтобы получить источник изображения, который находится в <li> со style="display: list-item;" (myphoto.png) с jQuery, но я не знаю, как это сделать...

Я попробовал это:

var firstThumbnailDisplay = $('#thumbs_list_frame li').css('display') == 'list-item';
var img = firstThumbnailDisplay.find("img").first().attr('src');

Но это не сработает.

  • 0
    почему вы не добавляете «выбранный» класс к элементу li и выбираете с помощью $ ('. classname'), чтобы сделать его немного менее хакерским
  • 0
    @Fuzzyma получить источник изображения для точки списка, у которой есть style = "display: list-item;"
Показать ещё 1 комментарий
Теги:

4 ответа

1
Лучший ответ

Это должно работать:

var src = $("#thumbs_list_frame li").filter(":visible:first").find("img").attr("src");

Он находит первый видимый (стиль не установлен для display: none;) li и получает атрибут src изображения внутри него.

1

Используйте селектор :visible.

var firstThumbnailDisplay = $('#thumbs_list_frame li:visible')

1

Используйте :visible чтобы найти тот, который отображается, а затем с помощью .find() и .attr() для достижения вашей цели.

var src = $('.result').html($('#thumbs_list_frame li:visible').find('img').attr('src'));

Здесь скрипка

1
//declare an array (there could be multiple)
var listItems = [];
//Loop the items
$('#thumbs_list_frame li').each(function() {
   var $this = $(this);
   //check for value
   if ($this.css('display') === 'list-item') {
     //push item into array
     listItems.push($this);
   }
});

//listItems now contains all list items with display:list-item;

скрипка

Ещё вопросы

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