Я пытаюсь найти конкретный элемент на своей странице с помощью ExtJS 4, поэтому я могу внести в него изменения. Я знаю, что его идентификатор, так что не должно быть проблемой, НОПопытка работать с методом down() из ExtJS 4.2.1
-I попытался Ext.getCmp («theId»), и он просто вернуть мне undefined
-I пытался использовать метод вниз («») theId пройдя через представление, и я все еще получаю ответ null
.
Как я знаю идентификатор элемента, я попробовал повторить два метода, установив вручную идентификатор, и он тоже не работает.
Эти два метода не работают?
Как мне это сделать?
Здесь заинтересованная часть кода:
listeners: {
load: function(node, records, successful, eOpts) {
var ownertree = records.store.ownerTree;
var boundView = ownertree.dockedItems.items[1].view.id;
var generalId = boundView+'-record-';
// Add row stripping on leaf nodes when a node is expanded
//
// Adding the same feature to the whole tree instead of leaf nodes
// would not be much more complicated but it would require iterating
// the whole tree starting with the root node to build a list of
// all visible nodes. The same function would need to be called
// on expand, collapse, append, insert, remove and load events.
if (!node.tree.root.data.leaf) {
// Process each child node
node.tree.root.cascadeBy(function(currentChild) {
// Process only leaf
if (currentChild.data.leaf) {
var nodeId = ""+generalId+currentChild.internalId;
var index = currentChild.data.index;
if ((index % 2) == 0) {
// even node
currentChild.data.cls.replace('tree-odd-node', '')
currentChild.data.cls = 'tree-even-node';
} else {
// odd node
currentChild.data.cls.replace('tree-even-node', '')
currentChild.data.cls = 'tree-odd-node';
}
// Update CSS classes
currentChild.triggerUIUpdate();
console.log(nodeId);
console.log(ownertree.view.body);
console.log(Ext.getCmp(nodeId));
console.log(Ext.getCmp('treeview-1016-record-02001001'));
console.log(ownertree.view.body.down(nodeId));
console.log(ownertree.view.body.down('treeview-1016-record-02001001'));
}
});
}
}
Вы можете увидеть мои console.log в конце. Вот что они дают мне на консоли JavaScript (в правильном порядке):
treeview-1016-record-02001001
Точный идентификатор Я ищу. И я также попробовать вручную в случае ...
h {dom: table#treeview-1016-table.x-treeview-1016-table x-grid-table, el: h, id: "treeview-1016gridBody", $cache: Object, lastBox: Object…}
Я проверил каждый конфиги этого пункта и его йота, и это именно та часть йота Ищу, что вид, содержащий мое дерево. BIG родитель
И потом:
undefined
undefined
null
null
Вот пункт, который я хочу, чтобы получить доступ к:
<tr role="row" id="treeview-1016-record-02001001" ...>
И я проверил нет дублирования идентификатора в любом месте ...
I спросил кто-то еще, кто сказал мне, что эти методы не работают. Проблема в том, что мне нужно получить доступ к этому элементу, чтобы изменить его cls.
Буду признателен за любую идею.
Кажется, это правильный метод. Он эффективно находит элемент из dom, а не компонент. Но это не работает в моем случае, поэтому я полагаю, что есть проблема где-то ... Я собираюсь попробовать что-то и сообщить вам – Poney
Хорошо, что все работает. Я добавил слушателя itemclick на моем дереве, чтобы выполнить 'console.log (Ext.get ('treeview-1016-record-02001001'));' когда я нажимаю, и он возвращает мне правильный элемент, поэтому я думаю, что мое дерево не полностью загружен, когда я пытаюсь выполнить свои первые строки 'Ext.get (id)'. Теперь я знаю, как это сделать! Спасибо, кев – Poney