检查if语句中有多少div

时间:2017-06-26 20:16:33

标签: jquery html

我试图查看我在DOM中有多少div。当我创建一个显示长度的变量时,它在控制台中给我未定义。但是,当我警告变量时,它返回" 8"。

的值

我试图写一个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语句不要转到else块。

2 个答案:

答案 0 :(得分:4)

你试图得到一个整数的长度,而不是数组。看,push.defaultvar cols = $('.col-lg-2').length是一个长度。那句话是错误的cols。只写if(cols.length == 8)

答案 1 :(得分:1)

在第一行中,您将长度分配给变量<div class="tableResponsive"> <table id="callLogExplorer"> <tbody> <tr> <td>asdfasd fas</td> <td>asdfasd fas</td> <td>asdfasd fas</td> </tr> <tr> <td>asdfasd fas</td> <td>asdfasd fas</td> <td>asdfasd fas</td> </tr> <tr> <td>asdfasd fas</td> <td>asdfasd fas</td> <td>asdfasd fas</td> </tr> <tr> <td>asdfasd fas</td> <td>asdfasd fas</td> <td>asdfasd fas</td> </tr> <tr> <td>asdfasd fas</td> <td>asdfasd fas</td> <td>asdfasd fas</td> </tr> <tr> <td>asdfasd fas</td> <td>asdfasd fas</td> <td>asdfasd fas</td> </tr> <tr> <td>asdfasd fas</td> <td>asdfasd fas</td> <td>asdfasd fas</td> </tr> <tr> <td>asdfasd fas</td> <td>asdfasd fas</td> <td>asdfasd fas</td> </tr> <tr> <td>asdfasd fas</td> <td>asdfasd fas</td> <td>asdfasd fas</td> </tr> <tr> <td>asdfasd fas</td> <td>asdfasd fas</td> <td>asdfasd fas</td> </tr> <tr> <td>asdfasd fas</td> <td>asdfasd fas</td> <td>asdfasd fas</td> </tr> <tr> <td>asdfasd fas</td> <td>asdfasd fas</td> <td>asdfasd fas</td> </tr> </tbody> </table> </div>,因此其值为cols。我认为你期待成为一个阵列,所以你可以在第二行打电话给8

您可以将整个数组分配到cols.length,因此第一行将是:

cols

或者您只能将第二行更改为:

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

因为在第一行中,您说if(cols === 8) { ... 的值为cols,然后在第二行,您调用的8不会返回您所期望的值。