2013-04-24 2 views
1

자바 스크립트와 jQuery 라이브러리를 사용하여 데이터를 긁어 내려고하고 있습니다.Javascript/jQuery - 스크래핑 IMG SRC

지금까지 그렇게 좋았습니다. 나는 태그들 사이에서 데이터를 긁어 낼 수있다. 예를 들어 내가 <li> 태그에서 데이터를 얻으려면 다음과 같이 내가 그렇게 :

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

을하지만, 나는 다음과 같은 코드를 사용하여 <img> 태그에서 SRC를 얻기 위해 시도하는 경우, 첫 번째 이미지가 반환됩니다 .

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

0
$('img').each(function(){ 
    alert($(this).prop('src')); 
}); 
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가 표준 자바 스크립트 배열 대신 자신의 배열 유형을 반환하기 때문에 .get() - jQuery 배열에서 반환 된 객체를 표준 배열로 변환해야합니다.