获取LI元素的offsetWidth(或等效)

4

我正在尝试使用jQuery获取元素的宽度。

alert($("#theList li:eq(0)").offsetWidth);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<ol id="theList">
  <li>The quick brown fox
</ol>

3个回答

7

jQuery有一个名为$(elem).width()的函数,它返回元素的offsetWidth

alert($("#theList li:eq(0)").width());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<ol id="theList">
  <li>The quick brown fox</li> <!--also you forgot closing tag -->
</ol>


1
jQuery的.width()只包括内容宽度。如果你真的想要一个等同于.offsetWidth的东西,你需要使用jQuery的.outerWidth() - NHerwich

4

您正在错误地混合使用jQuery和标准JavaScript。

要使用.outerWidth,您需要访问DOM元素:

alert($("#theList li:eq(0)")[0].offsetWidth);

或者您可以使用jQuery的.outerWidth()方法:

alert($("#theList li:eq(0)").outerWidth());

0

offsetWidth是HTML元素的只读属性。因此,您应该使用此机制首先获取选择的第一个元素,然后获取jQuery选择的HTMLElement并获取其属性:

   $('#theList li:eq(0)')[0].offsetWidth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接