2016-01-25 184 views
0

我有這樣的代碼:檢查元素包含另一個

$('#detail div p').each(function() { 
if ($(this).children("i").length) { 
    var TheVar = "Yes"; 
    MyData.push(TheVar); 
} else { 
    var TheVar = "No"; 
    MyData.push(TheVar); 
}; 
}); 

的問題是,我有時會得到不正確的答案,因爲如果裏面pi元素還沒有加載,然後我得到No,而不是Yes 。是否有任何解決方案要等到dom被加載?

問候

+0

是一個'$如果這些孩子都通過Ajax調用,那麼(文件)。就緒(函數(){'包裝? – tymeJV

+0

的唯一途徑這裏面的代碼做「計數」就是在成功中做到這一點s調用ajax的方法。 –

+0

這段代碼裏面'request'模塊中的節點,'變量$ = cheerio.load(身體);' – user1665355

回答

0

既然你是在cheerio運行這一點,並有過任何異步數據加載無法控制,請嘗試將延遲5秒(或更長)

setTimeout(function(){ 
    // try now 

},5000); 

你也可以使用一個間隔定時檢查,如果某些元素存在,而在這個時候取消間隔定時器

+0

好吧,只有解決方案? – user1665355

+0

不知道該頁面如何工作 – charlietfl

+0

好的,這聽起來不錯。請更新您的答案以設置此類取消? – user1665355

相關問題