Skip to content

Commit 9c27014

Browse files
authored
Core: renderer, removeAttr remove an attribute from a set of elements (T1261932) (#28595)
1 parent eab637b commit 9c27014

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

packages/devextreme/js/__internal/core/m_renderer_base.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,10 @@ initRender.prototype.attr = function (attrName, value) {
115115
};
116116

117117
initRender.prototype.removeAttr = function (attrName) {
118-
this[0] && domAdapter.removeAttribute(this[0], attrName);
118+
this.each(function (_, element) {
119+
domAdapter.removeAttribute(element, attrName);
120+
});
121+
119122
return this;
120123
};
121124

packages/devextreme/testing/tests/DevExpress.core/renderer.tests.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,21 @@ QUnit.test('Add/remove atribute', function(assert) {
372372
assert.equal(!!$element.get(0).getAttribute('readonly'), true, 'element readOnly attribute');
373373
$element.attr('readonly', false);
374374
assert.equal($element.get(0).getAttribute('readonly'), undefined, 'element readOnly attribute');
375+
});
376+
377+
QUnit.test('Remove an attribute from the whole set of elements (T1261932)', function(assert) {
378+
const fixture = document.getElementById('qunit-fixture');
379+
380+
const $wrapper = renderer('<div>').html('<div readonly="true">1</div><div readonly="true">2</div>');
375381

382+
const $allInnerElements = $wrapper.find('div');
383+
384+
fixture.appendChild($allInnerElements.get(0));
385+
386+
$allInnerElements.removeAttr('readonly');
387+
388+
$allInnerElements.each(function(_, element) {
389+
assert.equal(element.getAttribute('readonly'), undefined, 'element readOnly attribute');
390+
});
376391
});
377392

0 commit comments

Comments
 (0)