0

良い一日

各divの高さを計算して変数に追加する次の関数がありますが、機能していません:

JS:

$('#latestInner, #make, #models').each(function() {
    var i = 0;
    var h = $(this).outerHeight();
    i = i + h;
});
alert(i);

HTML:

<div id="latestInner"></div>
<div id="make"></div>
<div id="models"></div>

CSS:

#models {height: 100px; background: red;}
#latestInner {height: 200px; background: green;}
#make {height: 150px; background: blue;}

フィドル: http://jsfiddle.net/uwsJH/7/

4

4 に答える 4

2

あなたの問題はスコーピングでした。

このフィドルを試してください:

http://jsfiddle.net/uwsJH/9/

i=0;
$('#latestInner, #make, #models').each(function() {
   // var i = 0; <--- wrong scope
    var h = $(this).outerHeight();
    i = i + h;
});
alert(i);
于 2013-04-03T07:28:00.137 に答える
1

i はローカル変数なので、代わりに i = 0 を試してください var i =0

于 2013-04-03T07:26:30.337 に答える
1

これを試して :

var i = 0;
$('#latestInner, #make, #models').each(function() {

var h = $(this).css("height");
i = i + h;
});
于 2013-04-03T07:27:13.097 に答える
0

var i毎回初期化する必要はありません...次の方法で実行できます:

var i = 0;
$('#latestInner, #make, #models').each(function() {

    var h = $(this).outerHeight();
    i = i + h;
    //Or simply
    i = i + $(this).outerHeight();
});
alert(i);
于 2013-04-03T07:26:38.780 に答える