Extjs 有没有更好的方法让动态文本显示在组合框旁边?

Extjs 有没有更好的方法让动态文本显示在组合框旁边?,extjs,Extjs,我有一个组合框,根据当前选择,我希望动态文本出现在组合框旁边。 我目前的解决方案是可行的,但似乎笨拙而脆弱。它可能根本不起作用,这取决于组合框在DOM中的显示位置。 以下是我当前的解决方案“当下拉列表更改时”的关键: var child = owner.el.first().next().first().first().first().next().first(); if (child.dom.childNodes.length == 3) { child.cre

我有一个组合框,根据当前选择,我希望动态文本出现在组合框旁边。 我目前的解决方案是可行的,但似乎笨拙而脆弱。它可能根本不起作用,这取决于组合框在DOM中的显示位置。 以下是我当前的解决方案“当下拉列表更改时”的关键:

    var child = owner.el.first().next().first().first().first().next().first();
    if (child.dom.childNodes.length == 3) {
        child.createChild({
            tag: 'span',
            html: c + Ext.id()
        });                      
    } else {
        child.last().replaceWith({
            tag: 'span',
            html: c + Ext.id()
        });
    }
我最关心的是第一行…这不是找到插入点的好方法

下面是组合框的图片,旁边显示动态文本:

下面是我想要插入文本的地方:


有人能提出更好的方法来达到这个效果吗?谢谢。

已经在页面中设置了跨度,并通过其id获取它

Ext.get('combo-suffix').insertHTML(theText);

或者,通过id获取组合框元素并获取/添加其同级元素。

它是否始终位于名为ext-gen82的div中

如果是这样,为什么不使用jqueryfind方法呢

$("#ext-gen82").find("ext-gen107");
或者,您也可以为他们提供自己的课程,以帮助您找到他们:

$(".parentClass").find(".spanElement");
您也可以使用children方法:

$("#ext-gen82").children("span");

@OrangeDog为我指出了正确的方向,但我将在这里发布更详细的答案,以供完整性/未来参考

var inserted = false; // need to set this up initially
...
var pos = Ext.getCmp('combo-element-id').el.next('.x-form-trigger');
if (inserted) {
    pos.next().update(c + Ext.id());
} else {
    inserted = true;
    pos.insertSibling({
        tag: 'span',
        html: c + Ext.id()
    }, 'after');                            
}                                             

您可以使用ExtJS的工具提示小部件。@Cybernate:谢谢您的建议,但这只是显示了悬停状态。我想要页面上的文字。哈哈。1.我使用的是Extjs——我不会添加整个其他库来完成这项工作,因为Extjs也可以完成这项工作。2.名称是动态的-不保证每次都是相同的啊,对不起,我没听清楚!:谢谢你的建议。我不能在页面中已经有跨距-它需要嵌入到一个组合框中,或者我需要一些非常复杂的CSS来物理地粘贴它,就像它在组合框的内部包装中一样。第二个建议似乎更有希望,但它的兄弟是输入文本字段&这样做会在输入字段和下拉图标之间插入文本。我想我需要的是兄弟姐妹的兄弟姐妹。。。有什么建议吗?好的,用你的第二个建议找到一个更好的解决方案。我会把它贴成,只是为了完整性而回答,但我会给你信用。谢谢我认为我的主要问题是,我最初无法获得类选择器,例如。下一步开始工作,因为我在类前面取消了“.”,我正在寻找像“x-form-trigger”这样的类,不是“.x-form-trigger”在呈现表单时,您可能只需要插入新元素一次,然后在将来只需通过id获取新元素,或者根据代码结构维护对的引用it@OrangeDog:…对我来说,添加onRender只是为了添加一次,似乎有点过分,但我会更新我的答案,只是更新内容,而不是每次都创建新的内容。再次感谢。