我需要使用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

如果有人可以想到其他问题或解决方案,请为答案做出贡献。

10-05 20:54
查看更多