3

这似乎是 jqLit​​e 的一个问题,我在使用 angular.js 时遇到了这个问题。要查看问题,请打开控制台选项卡并单击此 jsbin中的“使用 js 运行” 。 left.css("width")不应该返回一个空字符串。

HTML

<!doctype html>
<html ng-app>
  <head>
<meta name="description" content="Angular Template" />
    <script src="http://code.angularjs.org/1.0.6/angular.min.js"></script>
    <script src="script.js"></script>
  </head>
  <body>
    <div class="container">
      <div class="left"><span id="test">left</span></div>
      <div class="right">right</div>
    </div>
  </body>
</html>

CSS

.container {display:table; width:100%;}
.left {border: 1px dashed purple; display:table-cell; overflow:hidden; width: 66%; height: 20px;}
.right {display:table-cell; background:green;  width: 34%; height: 20px;}

JS

var innerSpan = document.getElementById("test");
var left = angular.element(innerSpan);
console.log(left.css("width"));

当我使用 chrome 开发工具面板检查元素时,计算出的宽度肯定不是空字符串?我在这里想念什么?

4

1 回答 1

14

您不能.css('width')用来获取元素的宽度。您使用它来获取样式宽度。由于您没有在元素的样式属性中定义宽度,因此您没有任何价值。

试试.prop('offsetWidth')吧。

此外,在使用 jsbin.com 时,您的脚本会自动包含在内。包括 script.js 只是抛出一个 404。

于 2013-05-17T19:36:55.523 回答