操作jquery集合

时间:2013-03-19 16:21:12

标签: javascript jquery

我有一个用以下代码创建的JQuery集合:

var children = $('span[data-Parent="7"]');

现在我想操作该集合中项目的css类。我试过了:

for (var i = 0; i < children.length; i++) {
    var $child = children[i];
    if ($child.hasClass("red")) {
        $child.addClass("green");           
    }

但是得到错误声明该对象没有方法hasClass。将集合的元素作为文档元素以便操作它们的正确方法是什么?

4 个答案:

答案 0 :(得分:4)

您必须将DOM元素包装为jQuery对象。使用jQuery迭代元素通常使用提供的each函数完成:

$('span[data-Parent="7"]').each(function(){
   if ($(this).hasClass('red')) {
      $(this).addClass('green');
   }
});

请注意,整个代码可以缩减为

$('span[data-Parent="7"].red').addClass('green');

答案 1 :(得分:1)

我会说使用$.each

$.each(children, function(i, child) {
    if ($(child).hasClass("red")) {
        $(child).addClass("green");
    }
});

答案 2 :(得分:1)

只需循环遍历每个孩子,然后在.each循环中运行检查。

var children = $('span[data-Parent="7"]');

children.each(function(index)
{
    var self = $(this);

    if (self.hasClass("red"))
    {
        self.addClass("green");
    }
});

答案 3 :(得分:1)

将您的代码更改为:

var $child = $(children[i]);
//the rest of the code