Javascript 给Dojo TabContainer一个ID

Javascript 给Dojo TabContainer一个ID,javascript,dojo,Javascript,Dojo,我的页面中有以下代码,用于创建新的Dojo/Dijit TabContainer <div dojoType="dijit.form.ComboButton" iconClass="dijitIconEdit"> <span> Blank </span> <div dojoType="dijit.Menu"> <div dojoType="dijit.MenuItem" iconClass="dijit

我的页面中有以下代码,用于创建新的Dojo/Dijit TabContainer

<div dojoType="dijit.form.ComboButton" iconClass="dijitIconEdit">
    <span>
    Blank
    </span>
    <div dojoType="dijit.Menu">
    <div dojoType="dijit.MenuItem" iconClass="dijitIconEdit">
        Letter to Client
        <script type="dojo/method" event="onClick">
            newLetterToClientPane = dojox.layout.ContentPane({ title:'New Letter to Client', href:'some_url', closable:true })
            dijit.byId('mainTabs').addChild(newLetterToClientPane)
        </script>
    </div>
    <div dojoType="dijit.MenuItem" iconClass="dijitIconEdit">
        Letter to Company
        <script type="dojo/method" event="onClick">
            newLetterToCompanyPane = dojox.layout.ContentPane({ title:'New Letter to Company', href:'some_url', closable:true })
            dijit.byId('mainTabs').addChild(newLetterToCompanyPane)
        </script>
    </div>
    </div>
</div>

空白
给客户的信
newLetterToClientPane=dojox.layout.ContentPane({title:'newletter to Client',href:'some_url',closable:true})
dijit.byId('mainTabs').addChild(newletttoclientpane)
致公司的信
newletttocompanypane=dojox.layout.ContentPane({title:'newletter to companypane',href:'some_url',closable:true})
dijit.byId('mainTabs').addChild(newletttocompanypane)

这一切都很好。我只是想知道如何给新的TabContainer一个ID,因为我以后需要在脚本中重新填充,但我不能用out和ID来完成。我之所以问这个问题,是因为Dojo页面打开了,没有提到它。

使用
jsId
as

<div jsId='myfirstTab' dojoType="dijit.form.ComboButton" iconClass="dijitIconEdit">

使用
jsId
as

<div jsId='myfirstTab' dojoType="dijit.form.ComboButton" iconClass="dijitIconEdit">

以下方面应起作用:

newLetterToClientPane = dojox.layout.ContentPane({ id: "cp1", title:'New Letter to Client', href:'some_url', closable:true });
然后,您可以通过以下方式访问该小部件:

dijit.byId("cp1")
比如说

dijit.byId("cp1").attr ("title", "new title");
请注意,jsid将使用您指定的id创建一个全局JS变量-因此,如果不想添加到全局内存中,请小心 它确实提供了方便,因为您不需要使用dijit.byId来访问它 你可以做:

cp1.attr("title", "new title");
如果使用jsId作为cp1

Aso注意dojo.byId和dijit.byId之间的区别:


由于id行为在所有小部件中都是相同的,我猜他们在上面链接中提供的基本dijit文档中添加了详细信息,下面应该可以:

newLetterToClientPane = dojox.layout.ContentPane({ id: "cp1", title:'New Letter to Client', href:'some_url', closable:true });
然后,您可以通过以下方式访问该小部件:

dijit.byId("cp1")
比如说

dijit.byId("cp1").attr ("title", "new title");
请注意,jsid将使用您指定的id创建一个全局JS变量-因此,如果不想添加到全局内存中,请小心 它确实提供了方便,因为您不需要使用dijit.byId来访问它 你可以做:

cp1.attr("title", "new title");
如果使用jsId作为cp1

Aso注意dojo.byId和dijit.byId之间的区别:


由于id行为在所有窗口小部件中都是相同的,我猜他们在上面链接中提供的基本dijit文档中添加了详细信息,您也可以通过将
id
作为第二个参数传递给构造函数来实现这一点

很像一种标准的方式

newLetterToClientPane = dojox.layout.ContentPane({ title:'New Letter to Client', href:'some_url', closable:true }, "cpId")

您还可以通过将
id
作为第二个参数传递给构造函数来实现这一点

很像一种标准的方式

newLetterToClientPane = dojox.layout.ContentPane({ title:'New Letter to Client', href:'some_url', closable:true }, "cpId")

我需要新的
dojox.layout.ContentPane
的ID,我正在附加到
mainTabs
我刚刚更新了我的答案,你为什么不自己设置他的ID,为了每次都有不同的id,只需使用一个计数器作为jsId:“myfirstTab”+n谢谢提醒,但是我创建的选项卡是静态的而不是动态的,所以我可以硬编码id我需要新的
dojox.layout.ContentPane
的id,我正在附加到
mainTabs
我刚刚更新了我的答案,你为什么不自己设置他的id,为了每次都有一个不同的id,只需使用一个计数器作为jsId:“myfirstTab”+n谢谢提醒,但是我创建的选项卡是静态的,而不是动态的,所以我可以硬编码IDS,我认为这是如果你想让
内容窗格填充
我认为这是如果你想让
成为目标的话由
内容窗格填充