diff --git a/packages/devextreme/js/__internal/core/m_renderer_base.ts b/packages/devextreme/js/__internal/core/m_renderer_base.ts index 953beec137a6..9d3afb4f011b 100644 --- a/packages/devextreme/js/__internal/core/m_renderer_base.ts +++ b/packages/devextreme/js/__internal/core/m_renderer_base.ts @@ -1,7 +1,3 @@ -/* eslint-disable guard-for-in */ -/* eslint-disable no-restricted-syntax */ -/* eslint-disable prefer-arrow-callback */ -/* eslint-disable object-shorthand */ import domAdapter from '@js/core/dom_adapter'; import { cleanDataRecursive, data as elementData, removeData } from '@js/core/element_data'; import { isTablePart, parseHTML } from '@js/core/utils/html_parser'; @@ -146,18 +142,17 @@ initRender.prototype.removeClass = function (className) { return this.toggleClass(className, false); }; -initRender.prototype.hasClass = function (className) { - if (!this[0] || this[0].className === undefined) return false; - +initRender.prototype.hasClass = function (className: string) { const classNames = className.split(' '); - for (let i = 0; i < classNames.length; i++) { - if (this[0].classList) { - if (this[0].classList.contains(classNames[i])) return true; - } else { // IE9 - const className = isString(this[0].className) ? this[0].className : domAdapter.getAttribute(this[0], 'class'); - if ((className || '').split(' ').indexOf(classNames[i]) >= 0) return true; + + for (let i = 0; i < this.length; i++) { + if (!this[i] || !this[i].className) continue; + + for (let j = 0; j < classNames.length; j++) { + if (this[i].classList.contains(classNames[j])) return true; } } + return false; }; diff --git a/packages/devextreme/testing/tests/DevExpress.core/renderer.tests.js b/packages/devextreme/testing/tests/DevExpress.core/renderer.tests.js index f5e6f90bb34c..81e4982aa60e 100644 --- a/packages/devextreme/testing/tests/DevExpress.core/renderer.tests.js +++ b/packages/devextreme/testing/tests/DevExpress.core/renderer.tests.js @@ -202,6 +202,58 @@ QUnit.test('class should be removed from SVG', function(assert) { assert.notOk(element.hasClass('someClass')); }); +QUnit.module('hasClass method'); + +QUnit.test('should return true if element has class', function(assert) { + const element = renderer('