我使用jQuery和Raphael获得了这个数组:
squares = [];
for (i = 0; i < 2; ++i) {
var square = paper.rect(0 + 100*i, 0, 70, 70);
square.node.idx = i;
square.node.setAttribute('class', 'foo');
squares.push(square);
}
我可以成功查询各种属性,例如:
alert(squares[0].attr('x'));
或
alert(squares[0].attr('width'));
但不:
alert(squares[0].attr('class'));
这是否有特殊原因无效? 是否有(其他)方式来查询类属性?
谢谢, 阿德里安
答案 0 :(得分:1)
SVG aren't quite the same中的类作为其他所有类中的类 - 在处理SVG和IE的VML的Raphael中,事情变得更加毛茸茸。
首先,它们位于页面的DOM元素(Raphael的输出)上,而不是Raphael JS对象本身。您可以使用Raphael的.node
来获取实际的DOM路径(例如使用jQuery,$(squares[0].node).someJqueryFunction();
)但是出于上述原因,最好尽可能避免这种情况。 This related question有更多信息的答案。
如果你想使用类来存储数据(例如使用'active','inactive'类作为开关),你最好使用Raphael的.data
function,apparently用于存储任意值。 This related question有更多信息的答案。