我有一个用以下代码创建的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。将集合的元素作为文档元素以便操作它们的正确方法是什么?
答案 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