如何使用jquery计算宽度和边距

时间:2012-08-16 08:50:10

标签: jquery html

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

2 个答案:

答案 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/