jQuery найти img - PullRequest
       2

jQuery найти img

0 голосов
/ 18 июня 2010
<img src="http://site.com/some/category/thread_17.jpg" />
<img src="http://site.com/other/thread_17.jpg" />

Как найти последнее изображение на странице, которое имеет "thread_" после последнего "/" в атрибуте src?

Скрипт должен выдать src в какое-то var значение.

Ajax используется для поиска изображений на внешней странице

$.ajaxQueue({
 url: link, 
 type: 'GET',
 success: function(data) {
  var src = $('.slide img', data).attr('src');
 }
});

Дает атрибут последнего изображения из блока .slide.

Спасибо.

Ответы [ 6 ]

3 голосов
/ 18 июня 2010

$('.slide img[src*=\\/thread_]:last', data) может сделать это

1 голос
/ 18 июня 2010

Наилучшее предположение, используйте немного .filter() с RegExp, а затем элемент .last() в наборе, возьмите его источник, используя .attr('src')

var src = $('.slide img', data).filter(function() {
  // only keep <img> whos src have '/thread_' without another '/' before the end
  return $(this).attr('src').match(/\/thread_[^\/]*$/);
}).last().attr('src');

jsfiddle demo

1 голос
/ 18 июня 2010

Попробуйте следующее.

var srcAttr = $('.slide img[src*=\/]', data).filter(function() {

            var src = $(this).attr('src');
            return src.substr(src.lastIndexOf("/")).indexOf('thread_') >= 0

        }).last().attr('src');

Здесь я делаю следующее:

  1. Селектор получает нам все изображения с их тегами src, имеющими "/".
  2. Фильтрация изображений, имеющих «thread_» после последнего »/«
  3. Получение последнего изображения из всех таких изображений
  4. Получение атрибута src.
1 голос
/ 18 июня 2010

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

http://james.padolsey.com/javascript/regex-selector-for-jquery/

Регулярные выражения селектора jQuery

Надеюсь, это поможет

Regargs.

1 голос
/ 18 июня 2010
var src = $(data).find('.slide img').last().attr('src');
1 голос
/ 18 июня 2010

Вы можете перебирать ВСЕ изображения, которые у вас есть, и выполнять регулярные выражения для них, например:

$('.slide img', data).each(function(index){
   src = $(this).attr('src');
   stringarray = src.split('/');
   last_piece = stringarray[stringarray.length-1]
   regexpatt = /thread_/
   if ( regexpatt.test(last_piece) )
   {
      alert('we have a winner!');
   }
   else
   {
      alert('that was disappointing');
   }
});

Я уверен, что, возможно, есть более элегантный способ - вам, вероятно, следует поискать его в документации jquery, но это работает ...:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...