Держите верхний регистр, используя attr() с jquery (с учетом регистра)

Я делаю это с помощью jQuery:

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

Я получаю это:

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

Буква "L" больше не заглавная...

3 ответа

Есть билет http://bugs.jquery.com/ticket/11166

Кроме того, вы можете добавить хук атрибута (с именем в нижнем регистре) в jQuery, чтобы использовать нужный метод установки. Например:

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

Затем вы можете установить атрибут с учетом регистра с помощью.attr():

$('svg').attr('viewBox', '0 0 100 100');

Попробуйте использовать простой Javascript setAttribute который не чувствителен к регистру.

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

Ответ Кевина неверный, .setAttribute() изменит имя атрибута на строчные.

Вместо этого используйте element.setAttributeNS() с пустой строкой для первого параметра.

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

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

Другие вопросы по тегам