使用带有jquery的attr()保持大写(区分大小写)

时间:2012-11-20 10:10:46

标签: javascript jquery xml

我是用jQuery做的:

@xmlOut = $('<rules />')
@xmlOut.attr('xsi:schemaLocation','test')

我明白了:

<rules xsi:schemalocation='test'></rules>

“L”不再是大写......

3 个答案:

答案 0 :(得分:8)

尝试使用不区分大小写的普通Javascript setAttribute

@xmlOut.get(0).setAttribute('xsi:schemLocation', 'test');

答案 1 :(得分:8)

有一张票http://bugs.jquery.com/ticket/11166

或者,您可以将属性钩子(带小写名称)添加到jQuery,以便使用所需的setter方法。例如:

$.attrHooks['viewbox'] = {
    set: function(elem, value, name) {
        elem.setAttributeNS(null, 'viewBox', value + '');
        return value;
    }
};

然后,您可以使用.attr():

设置区分大小写的属性
$('svg').attr('viewBox', '0 0 100 100');

答案 2 :(得分:1)

Kevin的回答不正确,。setAttribute()会将属性名称更改为小写。

相反,使用带有空字符串的element.setAttributeNS()作为第一个参数。

@xmlOut.get(0).setAttributeNS('', 'xsi:schemaLocation','test')

https://developer.mozilla.org/en-US/docs/Web/API/Element/setAttributeNS