如果知道 DOM 元素的 ID,如何获取组件?
Posted
技术标签:
【中文标题】如果知道 DOM 元素的 ID,如何获取组件?【英文标题】:How can I obtain the component if I know the ID of the DOM element? 【发布时间】:2012-04-27 01:20:56 【问题描述】:我只是继承了一个有很多页面的 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,有没有办法获取组件呢?
【问题讨论】:
有没有人知道如何从元素的 ID 中获取组件,或者对如何解决我的问题有任何建议? 【参考方案1】:如果你有 domId 试试
var objComp = Ext.getCmp(domId);
如果你正在使用任何布局尝试
var objComp = Ext.getCmp('center-region').getComponent(domId)
【讨论】:
以上是关于如果知道 DOM 元素的 ID,如何获取组件?的主要内容,如果未能解决你的问题,请参考以下文章