2016-10-25 104 views
0

我寫下面的代碼,以刪除與類RC-錨-PT的元件(如果它是在DOM存在)5秒後,DOM操作不工作

checkContainer(); 

counter = 1; 
function checkContainer() { 

    alert("checkContainer"); 
    $('.rc-anchor-pt').remove(); 
    $('.rc-anchor-logo-portrait').append('<a href=\"http://www.un.org/en/aboutun/privacy/\" target=\"_blank\">Privacy &amp; Terms</a>'); 
     if($('.rc-anchor-pt').is(':visible')){ //if the container is visible on the page 
      var privacy = $('.rc-anchor-pt').find('a'); 

       } else { 
      if (counter === 1) 
     { 
      setTimeout(checkContainer, 5000); //wait 50000 ms, then try again 
      counter++; 
     } 
     } 
} 

但下面線不除去來自DOM的元素。你能告訴我是什麼原因嗎?謝謝advance.I我的document.ready唯一的元素裏面運行中存在的頁面 -

$('.rc-anchor-pt').remove(); 
+1

是否'.RC-錨pt'在你的HTML存在? –

+1

使用$(document).ready()來運行該函數而不是等待5秒 – Sergiodiaz53

+0

如果等待5秒鐘不起作用,則不會等待文檔準備就緒。選擇器可能是錯誤的。 –

回答

1

我真的不知道你想與您的代碼完成的任務。你在你的問題,你希望5秒後從DOM中刪除一個元素都表示......你應該能夠做到與下面的代碼:

$('.rc-anchor-logo-portrait').append('<br><a href=\"http://www.un.org/en/aboutun/privacy/\" target=\"_blank\">Privacy &amp; Terms</a>'); 

setTimeout(function(){ 
    $('.rc-anchor-pt').remove(); 
}, 5000); 

你有你的代碼中的佈局方式, rc-anchor-pt類將從不可見。那真的沒有目的。如果你想在5秒後運行append函數,只需將它放入setTimeout函數即可。

這裏是一個小提琴:https://jsfiddle.net/1399u65t/3/