这似乎是我在使用angular.js时遇到的jqLite的问题。要查看问题,请打开控制台选项卡,然后在this jsbin中单击"run with 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 dev工具面板检查元素时,计算出的宽度肯定不是空字符串?这里我漏掉了什么?
发布于 2013-05-18 03:36:56
不能使用.css('width')来获取元素的宽度。您可以使用它来获取带样式的宽度。因为您没有在元素的style属性中定义宽度,所以不会得到任何值。
请尝试使用.prop('offsetWidth')。
此外,在使用jsbin.com时,您的脚本也会自动包含在内。包括script.js在内就是抛出了一个404。
https://stackoverflow.com/questions/16616231
复制相似问题