我有一个DOM元素数组,我试图迭代它们并使用jQuery添加一个类,但jQuery似乎没有使用addClass方法设置类。但是,attr功能仍然有效。我做错了什么?
以下是我在控制台上的结果。
line 64
$(ui).addClass("class", "js-tooltip");
答案 0 :(得分:0)
查看jquery source我将此行为归因于#8317:
elem.className = finalValue;
看到SVG元素没有这个属性,就不会设置类(或者 - 特定的行仍然会运行,它不会做任何事情)
请参阅评论以获取更多信息!
答案 1 :(得分:0)
由于eithedog打败我发帖,jQuery使用element.className
。问题是SVG元素将element.className
值视为readonly
,这意味着jQuery尝试设置类没有任何作用:
if ( elem.className !== finalValue ) {
elem.className = finalValue;
}
请参阅https://github.com/jquery/jquery/blob/master/src/attributes/classes.js#L46
RECT
个元素实现SVGRectElement
接口:
interface SVGRectElement : SVGElement,
SVGTests,
SVGLangSpace,
SVGExternalResourcesRequired,
SVGStylable,
SVGTransformable {
readonly attribute SVGAnimatedLength x;
readonly attribute SVGAnimatedLength y;
readonly attribute SVGAnimatedLength width;
readonly attribute SVGAnimatedLength height;
readonly attribute SVGAnimatedLength rx;
readonly attribute SVGAnimatedLength ry;
};
http://www.w3.org/TR/SVG/shapes.html#InterfaceSVGRectElement
SVGRectElement
实施SVGStylable
,其中包含这个小花絮:
className (readonly SVGAnimatedString)