我想知道是否有一种方法可以检查元素是否存在,然后执行一个函数,然后重复但带有下一个id。
示例:如果log2643673存在,则执行功能,然后检查或等待log2643674存在,如果存在,则执行功能
如果不存在,请继续检查其存在并运行,然后找到下一个元素
var checkExist = setInterval(function() {
if ($('#log2643673').length) {
console.log("it exists!");
}
}, 1000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li id="log2643670" data-log="2643670" class="logs">Text here</li>
<li id="log2643671" data-log="2643671" class="logs">Text here</li>
<li id="log2643672" data-log="2643672" class="logs">Text here</li>
<li id="log2643673" data-log="2643673" class="logs">Text here</li>
对不起,我的英语不好
答案 0 :(得分:3)
尝试一下
$(function() {
var logIdStart = 2643670; // the start log id
// timer to check if element exists
var checkExist = setInterval(function() {
if ($("#log" + logIdStart ).length) {
console.log("it exists!");
logIdStart++; // update id only if element is found
}
}, 1000 /* change checking frequency if needed*/ );
});
在这里播放
$(function() {
var logIdStart = 2643670; // the start log id
$('button').on('click',function(){
$("body").append('<li id="log'+logIdStart+'">log'+logIdStart+'</li>');
});
// timer to check if element exists
var checkExist = setInterval(function() {
if ($("#log" + logIdStart ).length) {
$("body").append("log" + logIdStart + " exists!<br />");
logIdStart++;
}
}, 1000 /* change checking frequency if needed*/ );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li id="log2643670" data-log="2643670" class="logs">Text here</li>
<li id="log2643671" data-log="2643671" class="logs">Text here</li>
<li id="log2643672" data-log="2643672" class="logs">Text here</li>
<li id="log2643673" data-log="2643673" class="logs">Text here</li>
<div>
<button>Add Input</button>
</div>
答案 1 :(得分:0)
评估元素的长度是否大于cero。
1
答案 2 :(得分:0)
如果您具有随机ID并且需要检查元素是否存在,则可以执行以下操作:
$(function() {
var myListOfIds=$('li'); //Hold all the li tags.
var cnt=0; // we will use it in array iterate.
// timer to check if element exists
var checkExistInterval = setInterval(function() {
if(cnt== (myListOfIds.length)){
console.log(" Yeah, clear the interval,we have done it :)")
clearInterval(checkExistInterval);
}
else if ($("#" + myListOfIds[cnt].id ).length) {
console.log(myListOfIds[cnt].id +" Yes, I am in...");
cnt++;
}
}, 1000 /* Lets change checking frequency if needed*/ );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li id="log2643670" data-log="2643670" class="logs">Text here</li>
<li id="log2643671" data-log="2643671" class="logs">Text here</li>
<li id="log2643672" data-log="2643672" class="logs">Text here</li>
<li id="log2643673" data-log="2643673" class="logs">Text here</li>
<li id="IAmRandom" data-log="2643673" class="logs">Text here</li>
<div>
</div>
答案 3 :(得分:0)
假设您知道要查找的元素的起始ID,并且它们以数字顺序排列。
您可以使用纯Javascript
let counter = 2643670;
let checkExist = setInterval(function() {
const id = 'log' + counter;
const element = document.getElementById(id);
if (!!element) {
// Do you function call here
counter++;
}
}, 1000);
答案 4 :(得分:0)
你去了。 :)
function checkExist(startID) {
setInterval(() => {
if (document.getElementById(startID)) {
console.log(`ID ${startID++} exists`);
}
} ,1000)
}