如何获取具有指定类的每个输入的宽度

时间:2013-06-17 23:00:22

标签: javascript jquery

好的,所以我有一件相当简单的事情,但有些事情不能正常工作。

我的第一件事是几个<input />按钮,我想要的是为每个按钮包装设置自动宽度。

出于某种原因,无论我尝试什么,我得到的值为0 [3x]。比如像这样......

$('.button_holder .proceed').each(function() {
     console.log( parseInt( $(this).outerWidth() ) );
});

console.log给我“0”。

这是预览的小提琴,它在那里工作......很奇怪。

JS Fiddle Example

我不明白为什么,任何提示?

编辑1: 我的项目将#container设置为display:none,JS会执行一些淡入淡出效果。删除它,它现在似乎正常工作。

任何想法为何以及如何使其与fadeIn()容器一起使用?

1 个答案:

答案 0 :(得分:5)

当元素设置为 display:none 时,元素在技术上不存在于页面上。所以width will be 0 ..如果你想要它可以在callback of fadein

中编写你的代码
$('#container').fadeIn( 300, function() {
     $('.button_holder .proceed').each(function() {
        console.log( parseInt( $(this).outerWidth(), 10 ) );
     });
});

所以在容器在页面上可见,这是在回调函数中,迭代元素,它应该工作正常。

使用parseint

时不要忘记添加基数参数