我有这个问题。
$(".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}
答案 0 :(得分:2)
根据文档 data(key)
返回第一个元素值:
存储与匹配元素关联的任意数据,或在指定数据存储中返回匹配元素集中第一个元素的值。
使用 map()
迭代元素并在回调中返回所需的数据。使用 get()
获取结果数组。
var res = $(".myClass").map(function() {
return $(this).data('hotel');
}).get();
console.log(res);
&#13;
<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>
&#13;
答案 1 :(得分:0)
var arr = [];
var div = $('.myClass')
$.each(div, function() {
arr.push($(this).data('hotel'))
})
console.log(arr)
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.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>
&#13;
遍历每个div
答案 2 :(得分:0)
您需要执行.each循环来检索所有值,并将它们推送到数组中 -
var values = [];
$('.myClass').each(function(i, obj) {
values.push(obj);// can also use attr data-hotel
});
希望这会对你有所帮助。