jQuery,.data(‘X’)返回一个值而不是数组

我有这个问题.

$(".myClass");

回报

[
<div class='myClass' data-hotel='1' style='myStyle'></div>
<div class='myClass' data-hotel='2' style='myStyle'></div>
<div class='myClass' data-hotel='3' style='myStyle'></div>
]

为什么然后$(“.myClass”).data(‘hotel’);只返回’1’?

我试过$(“.myClass”).data();但返回Object {hotel:1}

最佳答案 根据文档
data(key)返回第一个元素值:

Store arbitrary data associated with the matched elements or return the value at the named data store for the first element in the set of matched elements.

使用map()迭代元素并在回调内返回所需的数据.使用get()获取结果数组.

var res = $(".myClass").map(function() {
  return $(this).data('hotel');
}).get();

console.log(res);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class='myClass' data-hotel='1' style='myStyle'></div>
<div class='myClass' data-hotel='2' style='myStyle'></div>
<div class='myClass' data-hotel='3' style='myStyle'></div>
点赞