7

1)如何设置HTML已创建的面板或任何其他元素?

我是初学者。我尝试了以下在 HTML 中设置一些内容

var clickedElement = Ext.getCmp('id').el.child('>');
clickedElement.setHTML("hello");

以上工作正常,但问题是面板内部有许多 div。上述方法是擦除 html 内部的那些(即 div)并用上述内容替换它。

我通过 Chrome 看到面板有三个嵌套的 div。因此,如果我想向其中添加 HTML,那么我需要提供如下内容:

var clickedElement = Ext.getCmp('id').el.child('>').child('>');  //two times child

当我尝试上述方法时,我成功添加了 html 内容,并且 div 也没有删除。这里的问题是,我看不到添加的内容(可能是因为某些默认样式,我可以看到内容正在添加到 Chrome 控制台中。)

我只是问是否有任何有效的方法可以将 HTML 添加到面板中。在我看来,这应该是我在这里复杂化的非常简单的方法。

2)如何检查一个元素是否有一个特定的孩子?

例如,假设extjs Button我在创建面板时将 a 作为子项(项目)添加到面板中。(我能做到)。如何检查面板是否有特定元素(即此处的按钮)?

在问这里之前,我进行了很多搜索,发现与我的问题有些相关但没有帮助的链接

4

2 回答 2

13

在 ExtJS 中,大多数组件被认为只有一个 body 元素,即使您在 dom 上看到更多。与基本上添加在标记之上的 jQuery 相比,ExtJS 自己生成整个标记。

现在回答你的问题,要更新组件的 HTML,你可以简单地调用这样的update()方法

Ext.getCmp('id').update('hello');

JSFiddle

于 2013-02-07T07:56:29.447 回答
1
Ext.ComponentQuery.query('#itemIdOfComponent').update('new value');

不要在组件上设置 id,而是添加 itemId 配置并查看 Ext.ComponentQuery.query 的文档。

于 2015-03-05T16:23:51.610 回答