因业务须要,须要将关闭windows窗口内的全部Tabs关闭掉,所以写了个方法,执行结果把我惊了一下。javascript
function closeAllTabs() { var tabsCount = $("#winTabs").tabs("tabs").length;//得到Tabs个数 for (var i = 0; i < tabsCount; i++) {//遍历 $("#winTabs").tabs("close", i);//0~n所有关闭 } }
长期写后端,程序这样写确定没问题,可是发现前端JS执行可不是按照后端的方式来执行的,其运行结果,只能关闭一半的Tabs标签;前端
通过调试后发现 $("#winTabs").tabs("close", i) 这个i是正常的加下去的,可是Tabs个数是因为被关闭掉就愈来愈少,所以执行到一半的时候后面的标签已经不存在了,可是仍是继续关下去。java
所以纠正代码,只须要将$("#winTabs").tabs("close", i) 这里的i更改成0便可,其原理是我永远只关第一个标签直接结束,解决问题。windows
1 function closeAllTabs() { 2 var tabsCount = $("#winTabs").tabs("tabs").length;//得到Tabs个数 3 for (var i = 0; i < tabsCount; i++) {//遍历 4 $("#winTabs").tabs("close", 0);//注意这里更改成0了 5 } 6 }