我正在尝试使用 ExtJS 4 从我的页面中查找特定元素,以便对其进行修改。我知道它的 id 所以它不应该是一个问题但是
-我尝试了 Ext.getCmp('theId') 它只是返回给我undefined
-我尝试通过视图使用 down('theId') 方法,但仍然得到null
响应。
正如我知道元素的 id 一样,我通过手动设置 id 再次尝试了这两种方法,但它也不起作用。
这两种方法都不起作用吗?
我应该怎么做?
这是代码的相关部分:
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…}
我检查了这个项目的每个配置及其 dom,它正是我正在寻找的 dom 的一部分,它是包含我的树的视图。大父母
接着:
undefined
undefined
null
null
这是我要访问的项目:
<tr role="row" id="treeview-1016-record-02001001" ...>
我检查了任何地方都没有 id 重复...
我问过其他人,他们告诉我这些方法不起作用。问题是我需要访问这个项目来修改它的 cls。
我会很感激任何想法。