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

loop to check if elements exist in jquery/js

所以,我有一个 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'>

(抱歉,我是第一次使用代码片段)

这应该可以完成工作:

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

console.log会return最高cc

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

我只是检查所有以 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>

只是对您的 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,(添加第二个等号来修复格式),这基本上是说 "continue the loop if the element doesn't exist",这不是你想要的。