0

这是来自图像滑块的片段,我正在尝试获取当前显示的具有样式属性“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>

江青

var currimg = $('li.bjqs-slide').filter("style","display:list-item").attr('data-score');
4

3 回答 3

0

如果您只需要第一名的分数img

$(function () {
    var currimg = $('li.bjqs-slide').find('img').first().data('score');
    alert(currimg);
});

如果您需要将多个imgs 的分数存储到一个数组中:

$(function () {
    var imgScore[] = $('li.bjqs-slide').find('img').data('score');
});
于 2013-07-03T03:53:03.600 回答
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中的第一个li.bjqs-slide与 a displayof list-item

于 2013-07-03T04:01:25.147 回答
0

.filter() 用于在当前查询的结果中查找元素。

.find() 用于在当前结果的后代中查找元素。

您的 .filter 调用有 2 个参数,但它应该只有一个。您可以使用 $("li.bjqs-slide[style*='list-item']") 来查找其样式属性当前包含“list-item”的元素。

然后,您从找到的元素中提取 data-score 属性的值,但看起来您应该从包含的图像中提取它。

于 2013-07-03T04:05:27.053 回答