断开的 JQuery 循环
Broken JQuery Loop
我的选项卡是使用 PHP 创建的,所以我不希望每个选项卡切换器选项卡设置宽度。 因此,我正在尝试将选项卡切换器的总宽度相加,以便我可以设置宽度然后应用margin:0 auto;
。
提醒var width
正在返回 NaN。这是我第一次循环尝试,可能在某个地方搞砸了!(显然...
杰奎里
var width;
var NumOfTabs = $('.TabSwitcher .Tab').length;
var count = 1;
while (count < NumOfTabs){
width = width + $('.TabSwitcher .Tab:nth-child(' + count + ')').width();
count++;
}
width = width + (NumOfTabs * 4) // Add passing
$('.TabSwitcher').css({'width': width + 'px'});
.HTML
<div class="TabSwitcher">
<div class="Tab Active" id="Page_1">1</div>
<div class="Tab" id="Page_2">2</div>
</div>
我认为你应该考虑使用jQuery方便的each
方法,如下所示:
var width = 0;
var tabs = $('.TabSwitcher .Tab');
tabs.each(function(index, tab) {
width += $(tab).width();
});
width += (tabs.length * 4); // Add padding
$('.TabSwitcher').css({'width': width + 'px'});
您还应该注意,width
必须实例化才能0
。否则,添加到它只会产生 NaN
.
不要继续查找内容。所有这样做只会让它变慢,因为你一遍又一遍地查找同一件事。
var width = 0; //you original issue, initialize it with a start value
var tabs = $('.TabSwitcher .Tab'); //store it do not look it up over and over
var numOfTabs = tabs.length;
tabs.each( function() { //use each to loop
width = width + $(this).width(); //"this" is the current tab
});
width = width + (numOfTabs * 4) // Add padding
$('.TabSwitcher').css({'width': width + 'px'});
http://jsfiddle.net/drk01j1L/
var width = 0;
$('.TabSwitcher .Tab').each(
function(index, el) {
width = width + $(el).width();
}
);
$('.answer').html(width);
在这里,您可以使用每个来查找所有宽度将它们加在一起。
相关文章:
- 在 for 循环 jQuery 中使用 one()
- 如何使用 for 循环 jquery 将相应的值附加到相应的 dom 元素
- 如何在循环jQuery中的数组中存储数据
- 循环JQuery数组
- 将值添加到相同的变量循环jQuery中
- 使用For each循环-jquery创建变量
- 在循环 jQuery 上添加元素
- 需要访问每个循环 jQuery 之外的变量
- Javascript:将循环jQuery动画放在js函数中
- 简单的循环 JQuery
- 使用日期循环 jquery 隐藏元素
- 从循环 jQuery 命名变量
- 循环jquery $.get,如何知道循环何时完成
- 需要循环 jquery
- 循环jQuery中的多个executeSql
- 编写函数来循环jquery样式库中的元素
- 从我从循环(JQuery)中收集的表中删除行
- 在for循环Jquery/Javascript中设置延迟
- 循环JQuery对象
- For循环Jquery正在创建表