如果我知道DOM元素的ID,我该如何获取组件?

时间:2012-04-27 01:20:57

标签: javascript extjs extjs4 extjs3

我只是继承了一个包含大量页面的ExtJS应用程序。此应用程序允许用户从MS Word粘贴。在MS Word 2003中,单引号和双引号不是普通的ASCII字符。当数据存储在数据库中时,它们被转换为方框或反转问号,因为我们的数据库列不处理Unicode,我们不希望将列转换为处理Unicode(数据只应该是ASCII,除了这些报价)。我在网上发现了一个JavaScript函数,可以从给定的字符串中删除这些引号。

我通过添加:

来测试此功能
enableKeyEvents: true,
listeners: {
    keyup: function(c,e) { ... }
}

这适用于一个元素/组件。但是我有大约100个组件,使用这个应用程序,找到这些组件并不容易。所以我决定做的是使用jQuery监听body元素上的keyup事件:

jQuery('body').keyup(function(e) {
    var keyCode = e.which;
    if ((keyCode == 86) && (e.ctrlKey)) {
        var domEl = e.target;
        var domId = domEl.getAttribute('id');
    }
}

此应用程序也使用网格组件和其他非网格组件。为了可靠地获取和设置值,我想获取组件并使用其getValue()和setValue()方法。那么,知道DOM元素的ID,有没有办法获得组件?

1 个答案:

答案 0 :(得分:0)

如果您尝试使用

var objComp = Ext.getCmp(domId); 

如果您使用任何布局,请尝试

var objComp = Ext.getCmp('center-region').getComponent(domId)