我需要使用JavaScript或jQuery获取新添加项的宽度。我知道是否需要将事件绑定到新添加的元素,可以在jQuery中使用事件委托或.on()方法。但是在这种情况下,我不绑定事件,我只需要获取该元素的宽度即可。我怎样才能做到这一点?
$('#box').width(); // won’t work
document.getElementById("box").width; // won't work either
最佳答案
获得宽度
您可以只使用jQuery的.width()
方法:
$('#box').width() // Should give you the pixel width with no px/rem/%
// Or plain ol' Vanilla JS
document.getElementById('box').offsetWidth
// Or mix it up
$('#box')[0].offsetWidth
可能的问题
确保您的元素已创建,可见并且已将其添加到DOM中。
您的元素包含浮动元素或绝对定位的元素,因此未获得任何宽度。
您正在尝试在DOM渲染之前检索元素的宽度。
确保您的元素不受任何样式表的影响,并且已以某种方式变为内联。
正在加载问题
确保您的脚本位于页面底部和/或您正在使用jQuery的
.ready()
方法:$(document).ready(function(){
$('#box').width();
});
// Shorthand for the above
$(function(){
$('#box').width();
});
演示版
VanillaJS Demo
jQuery Demo
如果有人可以想到其他问题或解决方案,请为答案做出贡献。