2016-11-10 2 views
0

Я использую диаграмму для отображения piechart для моего приложения. У меня есть:Как добавить класс в класс элемента в EXTJs

Ext.query('.highcharts-container') 

, что дает мне массив highchart-контейнеры, и я хотел бы добавить пользовательский класс к каждому из них, чтобы добавить некоторые пользовательские CSS. Я пробовал:

Ext.query('.highcharts-container').addCls("test") 

но говорит, что «addCls» не является функцией. ниже является IMG, как это выглядит:

enter image description here и согласие с ответами ниже, я пытался добавить его в отдельном приложении, и она работает, но по какой-то причине в этом случае константа показывает undefined.no CLUE whts продолжается?

+0

Обратите внимание, что скрипка вы вывесили недействительна, то есть синтаксические ошибки в нем. –

+0

Посмотрите на журнал, нет элементов, соответствующих 'd'. В любом случае, если вы не опубликуете реальный тестовый пример, мы не можем помочь, не можем угадать все возможные тонкие, которые могли бы пойти не так. –

ответ

0

Ext.query вернет массив соответствующих компонентов. Если вы уверены, что всегда будет точно один элемент в массиве, вы можете использовать:

Ext.ComponentQuery.query('.highcharts-container')[0].addCls("test") 

В противном случае, вы должны перебрать элементы и добавить класс к каждому компоненту.

Ext.ComponentQuery.query('.highcharts-container').forEach(function (item) { 
    item.addCls("test"); 
}); 
+0

Я пробовал первый случай: он err: Ext.query (...) [0] .addCls не является функцией. также когда я попробовал второй ex: он говорит: Ext.query («...»). Каждый из них не является функцией, является ли эта проблема проблемой? – user1234

+0

Это должно быть 'forEach' вместо' each'. Ответ исправляется. Вы также можете использовать 'Ext.ComponentQuery.query ('chart')', если это единственные диаграммы, которые вы используете. – chrisuae

+0

уверен, что forEach был решен, но все равно ошибка addCls продолжается. я все еще получаю следующее: «TypeError: item.addCls не является функцией (...)» .. есть ли другой способ? – user1234

1

Ext.query возвращает массив. Вместо этого используйте Ext.select, который возвращает CompositeElement. Это позволяет запускать Ext.dom.Element методы группы элементов:

Ext.select('.highcharts-container').addCls("test");

+0

говорит undefined again..если что-то не так с версией, если extjs im использует? – user1234

+0

Я сомневаюсь. Я предлагаю вам отправить тестовый пример. Вот «Ext.select», добавляющий класс: https://fiddle.sencha.com/#fiddle/1k7j –