2012-06-08 4 views

ответ

3

Один из способов сделать это - это перебрать все дочерние элементы, удалив их без этого конкретного имени или идентификатора.

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]); 
    } 
} 

Кажется довольно медленно, хотя, было бы неплохо, если бы там был чище путь (так что не принимает мой ответ! :))

2

для запроса с проверкой додзё dojo.query http://dojotoolkit.org/reference-guide/1.10/dojo/query.html

Запрос на типе элемента или имя класса или любой другой, обеспечивают второй параметр для

dojo.forEach(dojo.query(".tabs", "containerId"), 
    function(closeTab) { 
     //doStuff 
    } 
); 

Но, если есть много вкладок, вы можете уничтожить (рекурсивный) весь tabContainer и построить новый с одним элементом.

Смежные вопросы