7

1)HTML既に作成されたパネルまたは他の要素に設定する方法は?

私は初心者です。以下を試して、HTML内にいくつかのコンテンツを設定しました

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

上記は正常に機能していますが、問題は、パネルの内部に多くの div があるためです。上記のアプローチでは、html 内のそれら (つまり div) を消去し、上記のコンテンツに置き換えています。

パネルに 3 つのネストされた div があることを Chrome で確認しました。したがって、HTML を追加したい場合は、以下のようなものを指定する必要があります。

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

上記のアプローチを試したところ、html コンテンツが正常に追加され、div も削除されません。ここでの問題は、追加されたコンテンツが表示されないことです (おそらく、デフォルトのスタイル設定が原因で、コンテンツが Chrome コンソールに追加されていることがわかります)。

パネルに HTML を追加する効率的な方法があるかどうかを尋ねているだけです。私の意見では、これは非常に簡単なアプローチである必要があり、ここで複雑になっています。

2) Element に特定の子があるかどうかを確認する方法は?

たとえば、extjs Buttonパネルの作成中に子(アイテム)としてパネルに追加したとします。(私ができること)。パネルに特定の要素 (つまり、ここにボタン) があるかどうかを確認する方法は?

ここで質問する前に、私はたくさん検索し、私の問題への相対的ではあるが役に立たないリンクを見つけました。

4

2 に答える 2

13

ExtJSでは、domでさらに多くのことを確認しても、ほとんどのコンポーネントには1つのbody要素しかないと見なされます。基本的にマークアップの上に追加されるjQueryとは対照的に、ExtJSはそれ自体でマークアップ全体を生成します。

さて、あなたの質問ですが、コンポーネントのHTMLを更新するには、次のupdate()ようなメソッドを呼び出すだけです。

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

JSFiddleを参照してください

于 2013-02-07T07:56:29.447 に答える