2016-09-03 2 views
0

응답 html의 요소 클래스에서 muttiple 데이터 속성을 얻는 방법. 데이터 만 추출 할 수 있습니다.응답 html의 요소 클래스에서 복수 데이터 속성 가져 오기

이 내가 각도에 표시 할 JSON 또는 배열로 책 데이터를 얻을하고자 여기

<div class="book" data-name="frozen" data-author="micheal" data-price="30"> 
 
    Frozen 
 
</div> 
 
<div class="book" data-name="unbroken" data-author="jimmy" data-price="25"> 
 
    Unbroken 
 
</div> 
 
<div class="book" data-name="carry on" data-author="alex" data-price="32"> 
 
    Carry On 
 
</div>

Ajax 코드

function getData($scope){ 
     $.ajax({ 

     url: "/response.html", 
     dataType: "html", 
     success: function(response) { 
      var $response = $(response); 
      // not working 
      // var $book-data = $response.find('div.book').data({'name','author','price'}); 
      var $bookData = $response.find('div.book').data('name'); 
      alert($bookData); 
      }   
     }); 
     } 

response.html입니다.

+0

안녕하세요 @ JaromandaX, 답장을 보내 주셔서 감사합니다. 이 코드는 테스트를 거쳐 작업되었습니다. 나는 너무 순진하기 때문에 "시도"를 지적하지 않습니다. –

+0

안녕하세요 @ JaromandaX, 경고 ($ book-data)를 추가하지 않았지만 방금했습니다. 테스트 단계이기 때문에. 제가 완성하고자하는 것은 book-data json 또는 array를 반환하는 것입니다. 그것은 단지 시험입니다. 이 코드가 실행되면 경고 상자가 나타납니다. syntaxError : 누락; –

+0

죄송합니다 @ JaromandaX 방금 내 코드에서 $ book을 사용합니다. 나는 분명히 내가 원하는 것을 설명하기를 원하기 때문에 $ book-data라고 묘사했다. –

답변

0

이 시도 :

var bookData=Array(); 
$.get("stackTest.html", function(response) { 
    $.each($(response).find(".book"),function(ind,ele){ 
     bookData.push($(ele).data()); 

    }); 
    console.log(bookData); 
}); 

는 다음 각 ".book"의 데이터 객체 배열을 얻을 노드

마이크

+0

안녕하세요 @ 마이크, 고맙습니다, 해결책이 완료되었습니다. –

0

아주 쉽게 :

var allData = []; 
 
$('.book').each(function(i){ 
 
\t allData.push($(this).data()); 
 
}); 
 
console.log(allData);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="book" data-name="frozen" data-author="micheal" data-price="30"> 
 
    Frozen 
 
</div> 
 
<div class="book" data-name="unbroken" data-author="jimmy" data-price="25"> 
 
    Unbroken 
 
</div> 
 
<div class="book" data-name="carry on" data-author="alex" data-price="32"> 
 
    Carry On 
 
</div>

+0

안녕하세요, @skobaljic. 도와 줘서 고마워. 그러나 $ 응답에서 검색하는 방법. 나는 $ ('book')을 호출 할 수 없다. each()'. 죄송합니다. 나는 중학교 아마추어입니다. :-P –

+0

알았어. 내가 한 일과 같아. '성공 : 함수 (응답) { var $ 응답 = $ (응답); var allData = []; $ response.find ('div.book'). 각 (function (i) { allData.push ($ (this) .data()); }); console.log (allData); } ' –

+0

보상을 기대하지 못했다고 말할 수 없습니다. 그런데'$ .each() 함수는 jQuery 객체를 독점적으로 반복하는 데 사용되는 $ (selector) .each()와 같지 않습니다.'[Docs] (http : //api.jquery.com/jquery.each/). – skobaljic

관련 문제