循环检查 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",这不是你想要的。
所以,我有一个 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",这不是你想要的。