从响应html

时间:2016-09-03 11:04:54

标签: javascript jquery html angularjs

如何从响应html的元素类中获取muttiple数据属性。 我只能提取数据。

这是response.html

<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);
          }          
        });
      }

我希望将book数据作为json或数组显示为angular。

2 个答案:

答案 0 :(得分:0)

非常简单:

&#13;
&#13;
var allData = [];
$('.book').each(function(i){
	allData.push( $(this).data() );
});
console.log( allData );
&#13;
<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>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

试试这个:

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

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

然后你得到一个包含每个&#34; .book&#34;的数据对象的数组。节点

麦克