我将此代码用于get data-isAirTour
属性,但始终未定义。
var tours = $('#WrapTours').find('div.tour');
var toursTmp;
var length = tours.length;
for (var i = 0; i < length; i++) {
if (tours.eq(i).value.data('isForeignTour') == isForeignTour) {
toursTmp.push(tours[i]);
}
}
HTML:
<div class="col-sms-6 col-sm-6 col-md-3 tour" data-isAirTour="@item.IsAirTour" data-isForeignTour="@item.IsForeignTour" data-TourType="@item.TourType">
</div>
如何解决这个问题?
答案 0 :(得分:3)
tours[i]
将返回DOM元素。要使jQuery对象使用.eq(index)
,要获取索引处的对象,则可以使用jQuery方法,如.attr()
tours.eq(i).attr('data-isAirTour')
答案 1 :(得分:2)
除了其他提议的解决方案之外,您还可以使用vanilla JS getAttribute()
方法,如下所示:
var tours = $('#WrapTours').find('div.tour');
for (var i = 0; i < tours.length; i++) {
var attr01 = tours[i].getAttribute("data-isAirTour");
console.log(attr01);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="WrapTours">
<div class="tour" data-isAirTour="yes"></div>
</div>
&#13;
或者,您可以使用dataset.isairtour
(请记住将其全部保留为小写)以获得相同的结果:
var tours = $('#WrapTours').find('div.tour');
for (var i = 0; i < tours.length; i++) {
var attr01 = tours[i].dataset.isairtour;
console.log(attr01);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="WrapTours">
<div class="tour" data-isAirTour="yes"></div>
</div>
&#13;