0

我创建了一个 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

4 回答 4

4

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

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

请注意,整个代码可以简化为

$('span[data-Parent="7"].red').addClass('green');
于 2013-03-19T16:23:00.940 回答
1

我会说使用$.each

$.each(children, function(i, child) {
    if ($(child).hasClass("red")) {
        $(child).addClass("green");
    }
});
于 2013-03-19T16:22:45.083 回答
1

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

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

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

    if (self.hasClass("red"))
    {
        self.addClass("green");
    }
});
于 2013-03-19T16:22:58.943 回答
1

将您的代码更改为:

var $child = $(children[i]);
//the rest of the code
于 2013-03-19T16:23:15.007 回答