我做了一个小函数来计算宽度以及li的余量,但它给了我错误。
<head>
<style>
.bill ul{ list-style:none}
.bill ul li{ float:left; width:94px; margin-right:18px}
.bill ul li:last-child { margin-right:0}
</style>
<script type="text/javascript" src="jquery-1.7.2.js"></script>
<script type="text/javascript">
$(function (){
$('.bill').find('li').each(function (){
var jn += parseInt($(this).css('margin-right')) + $(this).width();
})
alert(jn)
})
</script>
</head>
<body>
<div class="bill">
<ul>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
</ul>
</div>
</body>
答案 0 :(得分:3)
您使用传递给jn
的匿名函数中的var
关键字声明.each()
变量,这意味着该变量将作用于该函数的内部,并且不存在于该函数之外它
尝试调用alert(jn)
可能会导致undefined
收到警报,因为jn
变量在该语句的范围内不可见。
此外,声明变量并使用+=
运算符是无效的语法。必须存在变量才能添加其值。请尝试以下方法:
$(function (){
var jn = 0;
$('.bill').find('li').each(function (){
jn += parseInt($(this).css('margin-right')) + $(this).width();
});
alert(jn);
});
答案 1 :(得分:0)
更好的方法是使用jQuery position()http://api.jquery.com/position/