我正在尝试从这样的指令向angularJs元素添加属性:
element.attr('startOffset', val);
但是当我检查元素时,添加的属性是'startoffset',其中'o'不是大写字母。
有没有办法为元素添加属性并保持单词的大小写完整?
由于
答案 0 :(得分:3)
如果使用jqliteWrapper .attr
设置属性,或者甚至使用直接DOM操作.setAttribute
,则在附加到元素之前,它将小写属性名称。
当调用HTML文档中的HTML元素时,setAttribute会将其属性名称参数设置为小写。
由于您正在使用SVG尝试使用setAttribute
进行直接操作,但设置属性使用SVG保留其大小写,不确定jquery是否在内部进行任何转换。
element[0].setAttribute('startOffset', val);
<强> Plnkr 强>
确认它是在angular之前的jquery包含,它导致它在通过.attr
设置时不保留属性名称大小写,但如果你不包括jquery和angular回到jqLite,它将设置属性名称因此,除了直接DOM操作之外,它将与SVG一起工作(以及attrs.$set
)。
答案 1 :(得分:0)
setAttributeNS使用给定的名称空间和名称添加新属性或更改属性值
element.setAttributeNS(命名空间,名称,值)
namespace是一个字符串,用于指定属性的名称空间。 name是一个通过限定名称标识属性的字符串;也就是说,名称空间前缀后跟冒号,后跟本地名称。 value是新属性的所需字符串值。