获取数据值并在类等于某个值时应用该类

时间:2013-05-12 17:31:50

标签: javascript jquery gridster

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

我目前正在尝试实现这一目标的列表项目的初始data-row2data-col1,我想检查它是否有已移至data-row 1data-col 1。我试过的代码就是:

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

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

1 个答案:

答案 0 :(得分: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');