假设我在标签容器中有以下Dijit标签:
tab_1
tab_dave
tab_2
tab_3
...
tab_n
如何关闭tab_dave
以外的所有标签?
答案 0 :(得分:3)
执行此操作的一种方法是循环遍历所有子项,删除没有该特定名称或ID的项。
function closeAllBut(containerId, tabId)
{
var tc = dijit.byId(containerId),
tabs = tc.getChildren();
for(var i = 0; i < tabs.length; i++)
{
if(tabs[i].id != tabId) tc.removeChild(tabs[i]);
}
}
虽然看起来很慢,但如果有更清洁的方式会很好(所以不要接受我的回答!:)
答案 1 :(得分:2)
使用dojo查询 dojo.query http://dojotoolkit.org/reference-guide/1.10/dojo/query.html
查询元素类型或类名或其他,为
提供第二个参数dojo.forEach(dojo.query(".tabs", "containerId"),
function(closeTab) {
//doStuff
}
);
但是,如果有很多标签你可以销毁(递归)整个tabContainer并构建一个只有1个元素的新标签。