Comment définir html d'un élément dans extjs
1) Comment définir HTML
déjà créé panneau ou tout autre Élément?
Je suis un débutant. J'ai essayé de le ci-dessous pour définir certains contenus à l'intérieur du code HTML
var clickedElement = Ext.getCmp('id').el.child('>');
clickedElement.setHTML("hello");
Ci-dessus fonctionne bien mais le problème est que, comme le groupe d'experts a beaucoup de div à l'intérieur.. l'approche ci-dessus est l'effacement de celles à l'intérieur du html (j'.e div) et de le remplacer par le contenu ci-dessus.
J'ai vu par google Chrome, que le groupe spécial a trois imbriquée div à l'. Donc, si je veux ajouter du code HTML de lui, puis j'ai besoin de donner quelque chose comme ci-dessous:
var clickedElement = Ext.getCmp('id').el.child('>').child('>'); //two times child
Quand j'ai essayé la méthode ci dessus, je suis d'réussi à ajouter le contenu html et aussi la div ne veut pas supprimer. Ici, le problème est que, je ne vois pas l'ajout de contenu (peut-être à cause de quelque défaut stylings, je peux voir le contenu est ajouté à Chrome console si.)
Je suis juste demander s'il existe un moyen efficace d'ajouter du HTML dans le panneau. À mon avis, cela devrait être très facile d'approche qui je suis complexant ici.
2) Comment vérifier si un Élément a un enfant en particulier ?
Supposons, par exemple, Si j'ai ajouté un extjs Button
comme un enfant(article) dans mon panneau lors de la création il. (ce que je peux faire). Comment vérifier si le panneau a l'élément particulier (j'.e bouton ici)?
Avant de demander ici, j'ai beaucoup cherché et trouvé quelque chose de relatif, mais pas utile lien à mon problème.
Vous devez vous connecter pour publier un commentaire.
Dans ExtJS la plupart des composants sont considérés comme un seul élément de corps de même si vous voyez plus sur le dom. En revanche pour jQuery qui est fondamentalement ajouté au-dessus d'un balisage ExtJS générer l'ensemble du balisage par lui-même.
Maintenant à votre question, pour mettre à jour le code HTML d'un composant, vous pouvez simplement appeler la
update()
méthode queVoir JSFiddle
var clickedElement = Ext.getCmp('id').el.child('>'); clickedElement.setHTML("hello");
de là, c'est trop suppression de l'intérieurdiv
. et maintenant quand j'essaie d'obtenir le code html, tout mon code est foiré. parce que certains éléments n'ont pas imbriquée div à l'(j'.e contenu des éléments modifiés) et les autres ont imbriquée div à l'...Ext.each(Ext.ComponentQuery.query('panel[cls=my-cls]'),function(panel){ panel.update(''); });
//retrait supplémentaire div de tous les enfants des éléments panel.panel.body.dom.innerHTML;
j'ai utilisé de la mêmepanel.el.child('>').getHTML()
qui revient au même.Ne définissez pas des id sur les composants au lieu d'ajouter un itemId configuration et voir la documentation pour Ext.ComponentQuery.requête.