这是来自图像滑块的片段,我正在尝试获取当前显示的具有样式属性“display:list-item”的图像的数据属性。由于我不知道将显示什么图像,我无法使用图像ID,所以我必须通过DOM过滤。我已经尝试了几种方法,包括下面的filter()方法,但我继续使用未定义的变量或空对象。
HTML
<ul class="bjqs" style="height: 500px; width: 100%; display: block">
<li class="bjqs-slide" style="height: 300px; width: 100%; display: list-item;">
<img id="image1" data-score="0" alt="Body Condition Score 5" src="mazihealth/My Images/BCS5cropped.jpg" title="Slide1" style="height: 300px; width: 100%;">
<p class="bjqs-caption" style="position:relative">
<img id="checkmark" src="mazihealth/My Images/checkmark2.jpeg">
</p>
</li>
</ul>
JQ
var currimg = $('li.bjqs-slide').filter("style","display:list-item").attr('data-score');
答案 0 :(得分:0)
如果您只需要第一个img
的分数:
$(function () {
var currimg = $('li.bjqs-slide').find('img').first().data('score');
alert(currimg);
});
如果您需要存储在数组中的多个img
的分数:
$(function () {
var imgScore[] = $('li.bjqs-slide').find('img').data('score');
});
答案 1 :(得分:0)
这应该适合您:http://jsfiddle.net/ZEEZP/2/
var currimg = $('li.bjqs-slide').filter(function() {
return this.style['display'] == "list-item"
}).first().find("img").first().data('score');
console.log(currimg);
将返回第一个score
中img
的{{1}} li.bjqs-slide
display
。{/ p>
答案 2 :(得分:0)
.filter()用于查找当前查询结果中的元素。
.find()用于查找当前结果后代中的元素。
你的.filter调用有2个参数,但它应该只有一个。您可以使用$(“li.bjqs-slide [style * ='list-item']”)来查找其style属性当前包含“list-item”的元素。
然后,您将从找到的元素中提取data-score属性的值,但看起来您应该从包含的图像中提取它。