2013-04-24 6 views
1

Я пытаюсь очистить данные с помощью Javascript и библиотеки jQuery.Javascript/jQuery - Скребок IMG SRC

Пока все хорошо. Я могу очищать данные между тегами. Например, я хочу, чтобы получить данные из <li> тегов, я сделать это следующим образом:

stuff_found = $(data).find('li'); 

Однако, если я пытаюсь получить ЦСИ из <img> тега, используя следующий код, только первое изображение возвращается ,

stuff_found = $(data).find('img').attr(); 

Мне нужно знать, как вернуть полный список (каждое изображение на странице), а не только первый в очереди.

ответ

0

все изображения на странице ..?

$('li img').each(function(){ 
    var src = $(this).attr('src'); 
}); 

Или получать их список -

var list = $('li img').map(function() { 
       return $(this).attr('src'); 
      }).get(); 
+0

Я немного смущен с этим, чтобы быть честным. На данный момент у меня есть 'stuff_found = $ (data) .find ('li');', который затем отслеживается в цикле for, где Я получаю каждое индивидуальное значение, используя 'var value = stuff_found [i] .firstChild.nodeValue;'. То, что я действительно хочу сделать, это то же самое, но я хочу, чтобы источник изображений находился внутри каждого элемента li. – user1100149

3

Проще всего было бы написать селектор изображения, чтобы получить только те, которые находятся внутри <li> тегов. Затем вы можете пересечь их с помощью .each() или, если вам действительно нужны только значения атрибута src, .map(). Например:

var imageList = $('li img').map(function() 
{ 
    return $(this).attr('src'); 
}).get(); 

Вот в примере кода это происходит:

  1. вы сначала получить все изображения, которые находятся внутри <li> тегов - $('li img') часть.
  2. Затем с помощью функции .map() вы применяете функцию, чтобы просмотреть все их и извлечь значение. В основном то, что делает .map(), заключается в том, что он принимает список, применяет данную функцию ко всем элементам списка и возвращает полученный список с вновь обработанными элементами.
  3. Часть с $(this).attr('src') получает значение src из тега изображения.
  4. И, наконец, поскольку jQuery возвращает свой собственный тип массива вместо стандартного массива javascript, вам нужно сделать .get() - это то, что преобразует возвращенный объект из массива jQuery в стандартный массив.