我有这个问题.
$(".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>