尝试在 Raphael 对象上使用查询每个循环

Trying to use a Query each loop on Raphael object

我正在努力编写一个 jQuery .each() 函数来循环遍历我从 Raphael 对象构建的数组。我可以使用传统的 JS for 循环来完成:

for (var i = 0; i < regions.length; i++) {
 regions[i].node.setAttribute('fill', '#113381');
}

但是当我尝试这个时:

$.each(regions, function (index) {
    $(this).node.setAttribute('fill', '#113381');
});

我得到一个错误:TypeError: undefined is not an object (evaluating '$(this).node.setAttribute')

典型的数组项如下所示:

var someName = rsr.path("M295.499,153.782l-0.77,4.605 l-5.786,1.016l-2.313-2.887l-1.233-3.278l-3.014-0.469l-3.39,1.013l-6.479,6.557l-5.575-0.332l-0.982-0.059l-3.936-2.262 l0.455-0.856l3.019-5.701l-1.623-1.325l2.408-4.141l11.51-0.261l5.212-0.119l-0.54,4.988l2.008,1.326l6.172-0.075L295.499,153.782z M274.037,160.428l2.193,1.402l5.325-5.342l-1.563-0.904L274.037,160.428z").attr({parent: 'someName',fill: '#CCCCCC',stroke: '#FFFFFF',"stroke-width": '0.54',"stroke-miterlimit": '10','stroke-opacity': '1'}).data('id', 'someName');
someName.attr({'id': 'someName','name': 'someName'});
regions.push(someName);

我已经声明了数组区域,它绘制了我的 Rapahel object.I 如果我能得到任何帮助,我将不胜感激。非常感谢。

没有 jQuery node 方法,您正在尝试使用此代码:

$(this).node.setAttribute('fill', '#113381');

改为使用:

$.each(regions, function (index, element) {
    element.node.setAttribute('fill', '#113381');
});

或:

$.each(regions, function (index, element) {
    this.node.setAttribute('fill', '#113381');
});