Javascript SetInterval循环直到找到元素

Javascript SetInterval循环直到找到元素,javascript,jquery,setinterval,do-while,Javascript,Jquery,Setinterval,Do While,嘿,所有我没有得到的结果,我期待与此javascript。当我在IE中执行它时,这是它在控制台中的功能: 开始 在步骤2 第一步存在 第一步存在 第一步存在 第一步存在 第一步存在 第一步存在 第一步存在 等等 这是我的JavaScript代码: javascript:(函数(){ var t=“34637”, a=“fhh”, l=“规则”, i=“baywatch”, o=“NMN”, n=“C”, s=“美国”, d=“美国”, q=“M”, m=“IA”, p=“05/22/1994”

嘿,所有我没有得到的结果,我期待与此javascript。当我在IE中执行它时,这是它在控制台中的功能:

开始

在步骤2

第一步存在

第一步存在

第一步存在

第一步存在

第一步存在

第一步存在

第一步存在

等等

这是我的JavaScript代码:

javascript:(函数(){
var t=“34637”,
a=“fhh”,
l=“规则”,
i=“baywatch”,
o=“NMN”,
n=“C”,
s=“美国”,
d=“美国”,
q=“M”,
m=“IA”,
p=“05/22/1994”,
y=“DL”,
z=“Ztghy663”;
控制台日志(“启动”);
var c=设置间隔(函数(){
如果($('[title=“提交搜索”]')。长度){
log(“步骤1已存在!”);
间隔时间(c);
$('[title=“提交搜索”]')。单击();
}
}, 100);
console.log(“在步骤2”);
c=设置间隔(函数(){
log(“步骤2!”);
如果($('[数据测试id=“201707241746357527497标签”]')。长度){
log(“存在步骤2!”);
间隔时间(c);
t=提示(“请输入数字:”、“”);
$('[data test id=“2017072417423205261024660”]')。val=t;/*设置数字文本框*/
console.log(“在步骤3”);
}
}, 100);
})();

问题在于,当您将间隔id存储在此行中时,这是为步骤1定义的

var c = setInterval(function () {
您可以使用此行覆盖它,并在步骤2中定义它

c = setInterval(function () {
因此,它试图清除step1方法中Step2函数的间隔,因此step1 setInterval不被清除

您只需要将这两个间隔存储在单独的变量中,这样就可以同时清除这两个间隔

更新的工作代码

javascript:(函数(){
var t=“34637”,
a=“fhh”,
l=“规则”,
i=“baywatch”,
o=“NMN”,
n=“C”,
s=“美国”,
d=“美国”,
q=“M”,
m=“IA”,
p=“05/22/1994”,
y=“DL”,
z=“Ztghy663”;
控制台日志(“启动”);
var c1=设置间隔(函数(){
如果($('[title=“提交搜索”]')。长度){
log(“步骤1已存在!”);
间隙(c1);
$('[title=“提交搜索”]')。单击();
}
}, 100);
console.log(“在步骤2”);
var c2=设置间隔(函数(){
log(“步骤2!”);
如果($('[数据测试id=“201707241746357527497标签”]')。长度){
log(“存在步骤2!”);
间隙(c2);
t=提示(“请输入数字:”、“”);
$('[data test id=“2017072417423205261024660”]')。val=t;/*设置数字文本框*/
console.log(“在步骤3”);
}
}, 100);
})();

我已经添加了一个带有解释的答案,如果有不清楚的地方,一定要告诉我。