createElement未插入dom中如何获取宽高

我创建一个元素createElement('div')
但是还没插入dom中,给他一个className,class样式有定了宽高,怎么获取啊?
getAttribute为null,offsetWidth为0;
但是在插入之后就能找到了,不过我要在插入dom之前获取它的宽高

阅读 8.3k
5 个回答

插入之前页面上没有这个节点,怎么获取? 如果你想获取的话就不能用js创建div了,建议display: none隐藏掉,dom节点是存在的,就可以获取它的属性、样式,如果是在ajax请求之后创建的话就创建一个空的div,请求后再给这个节点中插入数据等。
当然,不知道有没有更好的解决办法,我以前都是这么处理的。如果有更好的解决办法提醒一下哟~

插入前怎么可能知道它的宽和高呢?毕竟,我们的浏览器可能运行在各种设备上,它有各种不同的分辨率,同一个元素插入后就会有不同的宽和高。所以还是得在插入后获得它的宽和高。如果你不想让用户看见,可以设置元素的visibility=false来隐藏它。

如果只是创建了元素节点 但没有插入到文档树中去 那么这个元素节点只能称作文档碎片 是不能获取宽高的

迷之问题,我觉得你的思路有问题,可以说下你想实现什么。

除了固定宽度和高度的元素,其他元素的这个两个属性都是渲染的时候根据其他元素和显示区的情况实时计算的。。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题