我试图查看我在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块。
答案 0 :(得分:4)
你试图得到一个整数的长度,而不是数组。看,push.default
,var 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
不会返回您所期望的值。