var i =1;
function waitForElClass(data){
var element = data.selected;
var index = data.index;
var findEl = document.getElementsByClassName(element)[index];
console.log(i);
i++;
window.setTimeout(function(){
if(!$(findEl).length){
waitForElClass(data);
}else{
console.log(findEl);
return findEl;
}
},500)
}
我試圖獲得一個元素(有時候帶有和ID,類或者一組類元素中的一個,這個例子是後者的)正在用JS加載到一個頁面上,這意味着我需要每隔幾毫秒就要等一下。等到元素存在,循環,然後存儲在變量中
我想那麼它存儲在一個變量,與
var data = {selected: 'new', index: 0};
var elem = waitForElClass(data);
,它的發現元素,打印出來,而不是將其存儲在elem
。有任何想法嗎?謝謝!
嘗試從'elem'的聲明中去除'var'。這樣它應該是一個全局實例 –
你的'setTimeOut'中的'return'語句是從匿名函數內部返回的。你的外部函數在第一次運行之前完成,因爲它可能不需要'500ms'並且返回null。研究這種行爲的承諾。 – CollinD
這個元素是動態創建的? –