Javascript 获取不带jquery的元素的宽度

Javascript 获取不带jquery的元素的宽度,javascript,Javascript,不管怎样,我还是用传统的方法数数元素 我在一个主div中有几个div。现在,顶部div有一个设置的宽度,但它的内部宽度因其内容而异。如果我没弄错的话,我需要内部宽度。不管是什么情况,在这种情况下,它需要导致宽度为600 我使用的不是jquery,而是jqui,所以我希望只在javascript中使用它,因为jqui没有内部/外部宽度函数。这意味着我有一个$selector可以使用 <style> .holder { width:100%; /* which in this

不管怎样,我还是用传统的方法数数元素

我在一个主div中有几个div。现在,顶部div有一个设置的宽度,但它的内部宽度因其内容而异。如果我没弄错的话,我需要内部宽度。不管是什么情况,在这种情况下,它需要导致宽度为600

我使用的不是jquery,而是jqui,所以我希望只在javascript中使用它,因为jqui没有内部/外部宽度函数。这意味着我有一个$selector可以使用

<style>
  .holder {
    width:100%; /* which in this case is 320px */
    overflow-x: auto;
    overflow-y:hidden;
  }

  .menu_item {
    width:200px;
    float:left;
  }
</style>

<div class="holder" onscroll="get_width(this)">
  <div class="menu_item">
    item1
  </div>
  <div class="menu_item">
    item2
  </div>
  <div class="menu_item">
    item3
  </div>
</div>

get_width(that) {
  alert(that.innerWidth); // returns undefined
  alert(that.width); // returns undefined
}

.持有人{
宽度:100%;/*在本例中为320px*/
溢出-x:自动;
溢出y:隐藏;
}
.菜单项{
宽度:200px;
浮动:左;
}
项目1
项目2
项目3
得到(那个)宽度{
alert(that.innerWidth);//返回未定义的
alert(that.width);//返回未定义的
}

我相信您需要的是

分别使用clientWidth和clientHeight获得宽度和高度

element.clientWidth
更新:

即使在旧的ie6中也支持clientWidth

查看以下所有平台支持:

查看这篇精彩的文章,了解有关不同宽度相关属性的更深入信息:

注意:

此属性将值舍入为整数。如果你需要 分数值,使用element.getBoundingClientRect()


返回320的可能重复,即页面宽度。我需要内部宽度等一下,我会检查并给你小提琴的链接,它会返回一个完整的对象。我需要哪一个?等一下,我会检查一下,然后给你小提琴链接我觉得我有点傻。我已经用我的CSS更新了你的小提琴,但它在JSFIDLE中不起作用(出于某种原因正在进行某种包装)。不过,它在phonegap ios和phonegap android(所有手机上都可以使用)以及所有浏览器中都可以使用。但您的示例仍然返回屏幕宽度,而不是我需要的内部宽度。返回320,这是页面宽度。我需要内部宽度谢谢,它返回元素的确切宽度