2

我做了一个小函数来计算宽度以及 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>
4

2 回答 2

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);
});
于 2012-08-16T08:54:45.113 回答
0

更好的方法是使用 jQuery position() http://api.jquery.com/position/

于 2012-08-16T08:53:12.227 回答