我有一个脚本,将一些宽度设置为Dom上的几个元素,这几个元素正在使用: var elements = document.querySelectorAll("p.caption")
前12个元素是好的,右侧offsetWidth但另一半的offsetWidth为0 .
我想这可能是因为Dom没有准备好,或者没有完全加载所以可能元素处于不同的状态,该属性为0,但我将调用该函数放在Dom中的onload事件上并且是同样的结果,我寻找检查Dom的元素,我可以看到它,但属性仍为0 .
我还读到了offsetWidth得到0但是唯一与之相关的事情就是因为有问题的元素最近在Dom上发生了变化,并且offsetWidth没有更新,但事实上,我之前没有任何其他功能指出一些Dom的变化 .
更新:显然我读了一点,发现元素显示时offsetWidth为0:none;所以有一种方法可以获得隐藏的元素的宽度 .
1 回答
Per your 'Update':
如果您需要获取函数调用时不希望显示的元素的宽度, don't 将其显示设置为none,而是使用以下内容:
这将把它们放在视图端口之外,但是可以让它们被jQuery / javascript访问以进行测量 .