2017-06-26 5 views
0

私はDOM内にいくつのdivがあるかを確認しようとしています。そこに長さを表示する変数を作成すると、私はコンソールで私を定義しません。しかし、私は変数に警告するときに "8"の値を返します。if文に含まれるdivの数を確認することを確認してください。

私はifステートメントを記述して、そこにいくつのdivがあり、出力を表示しようとしています。しかし、私のif文はtrueブロックを返していません。代わりに、それは代わりに別のものに行きます。

ここに私が試したことがあります。

<div class="col-lg-2">div1</div> 
<div class="col-lg-2">div2</div> 
<div class="col-lg-2">div3</div> 
<div class="col-lg-2">div4</div> 
<div class="col-lg-2">div5</div> 
<div class="col-lg-2">div6</div> 
<div class="col-lg-2">div7</div> 
<div class="col-lg-2">div8</div> 

そして、私はJavaScript:

var cols = $('.col-lg-2').length; 
if(cols.length == 8) { 
    alert("there are 8 divs"); 
} 
else { 
    alert("there isn't 8 divs"); 
} 

は私が間違って何をしたかわからないが、私は他のブロックに移動しないようにif文をしたいです。

+6

if(cols === 8)。すでに最初の行に長さがあります。 – baao

+0

'cols'はすでに長さです。 '(8).length'は' undefined'を返します。これはfalseです。したがって、あなたは 'else'ブロックを打ちました。 –

+0

なぜif文がelseブロックに行くのですか?私の論理は正しいのではないですか? – Curious13

答えて

4

配列ではなく、整数の長さを取得しようとしました。見てください、var cols = $('.col-lg-2').lengthcolsは、ある程度の長さです。その声明は間違っていますif(cols.length == 8)。単にif(cols == 8)と書いてください。

1

最初の行で変数colsに長さを割り当てているようですので、その値は8です。私はあなたが2列目にcols.lengthと呼ぶことになるので、配列になると思っていたと思います。

あなたはcolsに配列全体を割り当てることができますいずれか、その最初の行は次のようになります。

cols = $('.col-lg-2'); 
if(cols.length === 8) { 
    ... 

か、の2行目のみ変更することができますので、最初の行に

if(cols === 8) { 
    ... 

colsの値が8であり、次に2行目に8.lengthと呼んでいて、期待通りの結果を返さないと言っています。

関連する問題