当我知道父元素的id并且知道我要查找的元素的类型和样式类时,很难在dojo元素中找到



当我知道父元素的id并且我知道我寻找的元素的类型和样式类时,是否可以在dojo元素中找到?例如,我想找到并更改(span style=tabLabel) ALARMSMga alarm

<div dojoattachpoint="focusNode" role="tab" style="-moz-user-select: none;" id="tab_div_tablist_dijit_layout_ContentPane_1" tabindex="-1" title="" aria-selected="false">
                <img dojoattachpoint="iconNode" class="dijitIcon dijitTabButtonIcon dijitNoIcon" alt="" src="dojoroot/dojo/resources/blank.gif">
                <span class="tabLabel" dojoattachpoint="containerNode" style="-moz-user-select: none;">Alarms</span>
                <span role="presentation" dojoattachevent="onclick: onClickCloseButton" dojoattachpoint="closeNode" class="dijitInline dijitTabCloseButton dijitTabCloseIcon" style="display: none;">
                    <span class="dijitTabCloseText" dojoattachpoint="closeText">[x]</span></span>
            </div>

在这种情况下,这很容易。如果您查看您引用的span元素,它有一个指定的dojoattachpoint属性。这意味着可以通过该名称直接从小部件访问该节点。

现在我假设小部件被称为"tab_div_tablist_dijit_layout_ContentPane_1"从id在你的代码,所以得到小部件:

var widget = dijit.byId("tab_div_tablist_dijit_layout_ContentPane_1");

span上的dojoattachpoint的值为containerNode,因此:

widget.containerNode.innerHTML = "Mga alarma";

我想应该可以。

如果您正在创建自定义小部件模板并希望对字符串进行本地化,那么有一种机制可以做到这一点。只需使用${alarm}这样的替换模式,并在小部件上定义一个javascript属性。然后可以使用dojo.i18n用本地化包填充该属性。您可以查看dijit.Dialog.postMixInProperties等dijit来了解这是如何完成的。

最新更新