【发布时间】:2014-06-22 19:31:29
【问题描述】:
在添加到正文之前我需要元素宽度。
以下脚本在 firefox 中运行良好,但在 google chrome 中运行良好
<style>
.testDiv { width:150px; height:100px; }
</style>
<script>
var div = "<div class='testDiv'>Div Content</div>";
alert($(div).width());
</script>
它在 firefox 中输出 150 在 chrome 中输出 0
我也试过了
$(window).load(
function() {
alert($(div).width());
}
);
但它的工作原理相同......
更新:
我可以看到,如果我声明 css inline 它可以工作,但我需要使用 css class
var div = "<div style='width:150px;'>Div Content </div>";
alert($(div).width());
【问题讨论】:
-
这可能是因为 div 还没有出现在 DOM 中。尝试添加 div。 Append()/ Prepend()/html() 然后检查宽度
-
根据@SSS,在将元素插入 DOM 之前,您不会获得宽度
-
顺便说一句,在最新的 FF 中它也没有给出宽度。
-
@SSS 它在 FF 29.0 Win7 上为我提供。但无论如何,OP 应该在获取任何大小之前将元素添加到 DOM。他可以找到一些解决方法,例如使用克隆 DIV 并将其附加到视口之外,获取大小,然后删除克隆的元素。看起来 FF 29.0 正在应用 CSS 规则,甚至元素不在 DOM 中,对我来说很新
标签: javascript jquery google-chrome firefox