0

如何将数据存储到元素,然后操作检查它是否有数据?

例如,我有这两个具有相同类名的元素。

<div class="elem"></div>
<div class="elem"></div>

jQuery,

$(".elem:first").data("hasdata","popup");

if($(".elem").data("hasdata") === 'popup') $(".elem").css({background:'red'})

我得到了两个红色,但我只想让第一个变成红色。可能吗?

我对jsfiddle的测试

4

3 回答 3

2

您可以使用each该类遍历所有元素elem

$(".elem:first").data("hasdata","popup");
$(".elem").each(function(){
  if ($(this).data("hasdata") === 'popup'){
    $(this).css({background:'red'});
  }
});

检查这个jsFiddle

于 2013-07-16T16:04:42.463 回答
2

尝试这个:

$(".elem:first").attr("data-hasdata","popup");

$(".elem[data-hasdata='popup']").css({background:'red'});

JSfiddle 演示

于 2013-07-16T16:05:49.383 回答
2

您可以使用 filter() 并将条件放入其中。

现场演示

$(".elem:first").data("hasdata","popup");
$(".elem").filter(function(){
    return $(this).data("hasdata");
}).css({background:'red'});
于 2013-07-16T15:59:58.277 回答