循环检查jquery / js中是否存在元素

时间:2018-08-24 19:48:19

标签: jquery loops for-loop exists

所以,我有一个HTML文件,其中有一些可以称之为“盒子”。每个框都有一个ID:CC1,CC2等。我正在寻找某种类型的循环,在其中键入CC并在末尾添加i,因此它应该询问CC + i是否存在。长度

我在这里的目标是停止现有的最高CCi。这是我的尝试:

for (i=1; $('#cc'+i).length = 0; i++ ){
    console.log('#cc'+i)
}

谢谢!

    var i
    for (i=1; $('#cc'+i).length = 0; i++ ){
        console.log('#cc'+i)
    }
.container{
  width:50px;
  height:50px;
  background-color: #000;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class = 'container' id = 'cc1'>
<div class = 'container' id = 'cc1'>

(对不起,我第一次使用摘要)

3 个答案:

答案 0 :(得分:0)

这应该可以完成工作:

var i = 0;
while($('#cc'+i).length > 1){i++}
console.log('cc'+i);

console.log将返回最高抄送

答案 1 :(得分:0)

不确定它是否完全满足您的需求,但是也许您可以在此基础上构建!

我只是检查以cc开头的所有元素的长度。

您的代码中的问题是循环没有到此为止。您一直循环播放直到i = 0,这永远不会发生

$count = $('div[id^="cc"]').length;
console.log($count);
div{
background-color:blue;
margin:1rem;
color:white;
text-align:center;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="cc1">
1
</div>
<div id="cc2">
2
</div>
<div id="cc3">
3
</div>
<div id="cc4">
4
</div>
<div id="cc5">
5
</div>
<div id="cc6">
6
</div>

答案 2 :(得分:0)

只需对您的for-loop进行小幅修复,请尝试以下操作:

for (var i = 1; $('#cc' + i).length !== 0; i++){
    console.log('#cc' + i)
}

这将从#cc1开始,循环直到#cc<number>不存在,并打印所有 do 存在的#cc<number>值。

这就是循环变慢的原因:

应检查for-loop的中间条件,以确保存在#cc<number>元素,因为这是循环继续的条件。当您拥有$('#cc'+i).length == 0(添加第二个等号以修复格式)时,这基本上是在说“如果元素不存在则继续循环”,这不是您所需要的。想要。