2

我有一个需要使用 gridster.js 的家庭作业,我希望能够检查列表项的 data-row 属性是否等于某个值,并且它的 data-col 属性是否等于一个值。如果它们确实等于所需的值并且它们的坐标与预期的位置匹配,我想将一个类添加到“true”的列表项中。

我目前正在尝试使用的列表项具有首字母data-rowof2和 a data-col1我想检查它是否已移至data-row 1and data-col 1。我试过的代码是这样的:

if ($('.hi').data({row: 1, col: 1})) $('.hi').addClass('true'); }

但是,此语句会导致添加 true 类,而不管位置如何。理想情况下,我要做的是检查每个列表项的data-rowanddata-col值是否等于正确的值,以及它们是否添加了 true 类。然后,我打算使用该.each方法检查每个列表项是否有一个类,true如果有,我想更改包含 gridster 无序列表的 div 的背景颜色。

4

1 回答 1

2

那是因为您使用data的 setter 返回一个 jQuery 对象,并且在 JavaScript 中一个对象是一个真实值,除了data只返回 jQuery 集合中第一个匹配元素的值之外,您可以使用filter方法:

$('.hi').filter(function(){
   var $this = $(this);
   return $this.data('row') === 1 && $this.data('col') === 1;
}).addClass('true');
于 2013-05-12T17:38:46.870 回答