Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除Ext.query(';.classname';)-EXTJS上的all_Javascript_Extjs - Fatal编程技术网

Javascript 删除Ext.query(';.classname';)-EXTJS上的all

Javascript 删除Ext.query(';.classname';)-EXTJS上的all,javascript,extjs,Javascript,Extjs,我想使用以下方法从阵列中删除所有元素: Ext.query('.classname') // gets me array of elements Ext.query('.classname').removeall()不是它支持的函数,如何实现 谢谢我猜应该是这样的: Ext.ComponentQuery.query('panel[cls=classname]').each(function(cmp) { cmp.destroy(); }); Ext.query实际上是Ext.dom.

我想使用以下方法从阵列中删除所有元素:

Ext.query('.classname') // gets me array of elements
Ext.query('.classname').removeall()不是它支持的函数,如何实现


谢谢

我猜应该是这样的:

Ext.ComponentQuery.query('panel[cls=classname]').each(function(cmp) {
    cmp.destroy();
});
Ext.query
实际上是
Ext.dom.query
,因此它不会返回组件

。。。同样如此


解释:问题没有指出代码应该运行什么;因此,我假设它是ExtJS组件,而不是ExtJS面板中的HTML内容(在框架中没有表示)。关键是,当删除DOM节点时,在不破坏相关组件的情况下,这将留下孤立引用。因此,建议正确地销毁它们,这样它们就不会再不必要地占用RAM,例如,如果一次又一次地删除DOM节点,然后添加新的ExtJS组件,这将导致行为迟缓。

使用
Ext.select
,它包装了返回元素,以便您可以像调用组一样调用
Ext.dom.Element
方法:

Ext.select('.even').remove();

.

这个问题没有提到任何关于组件的内容。@OP,如果这是您问题的正确答案,您需要更新您的问题。向下投票,因为DOM操作在ExtJS中毫无意义(留下断开的引用)。这完全是错误的。即使是这样,这也是问题所要求的。添加了一个更详细的解释“为什么”,这可以很容易地在压力测试中重现;op没有指出代码运行的内容,这表明他可能没有考虑到这一点。这两个答案可能都是正确的,但这取决于给定的情况。您所写的内容是正确的,通常不应该弄乱组件的内部DOM。然而,OP并不是在问这个问题,你关于“DOM操作毫无意义”的断言充其量只是一个肤浅的观点。你认为你是如何组合一个定制组件的?你能提供更多的细节吗;例如,这些“元素”是什么?这些元素是由
div组成的数组