2015-08-18 30 views
0

我在Drupal 7網站上有一個「語言切換器」。在jQuery中,remove()方法並未真正移除元素

<ul class="language-switcher-locale-url"> 
    <li class="en first"> 
     <a class="language-link" xml:lang="en" href="someURL"> 
      <img class="language-icon" width="26" height="19" title="English" alt="English" src="someURL"> 
     </a> 
    </li> 
    <li class="fr active"> 
     <a class="language-link active" xml:lang="fr" href="someURL"> 
      <img class="language-icon" width="26" height="19" title="Français" alt="Français" src="someURL"> 
     </a> 
    </li> 
    <li class="ru last"> 
     <a href="someURL" class="language-link" xml:lang="ru"> 
      <img class="language-icon" src="someURL" width="26" height="19" alt="Русский" title="Русский" /> 
     </a> 
    </li> 
</ul> 

當某些特殊情況屬實時,我想刪除俄羅斯國旗。

<script> 
jQuery(document).ready(function() { 
    var ce; 
    ce = jQuery("ul.language-switcher-locale-url > li.ru"); 
    ce.remove(); 
    ce = undefined;  
}); 
</script> 

看來工作,因爲標記被去掉,螢火顯示在控制檯和W /檢查元素我發現<li>已被刪除任何錯誤。 但是,如果我去頁面源,它​​仍然存在。

這是否意味着jQuery不會從DOM中刪除元素?爲什麼它仍然在頁面源代碼中? 我如何確定它被完全刪除?

+0

只有DOM對象纔會更改頁面源。 –

+0

你是什麼意思的頁面源...如果你沒有檢查活的DOM,但使用查看源選項...那麼它將只顯示從服務器上下載的源 –

+0

頁面源代碼是原始的html文件,jQuery doesn不編輯「頁面源代碼」html文件,它編輯基本上是html文件副本的DOM對象。 – Canvas

回答

0

頁面源顯示您最初從服務器下載的HTML,但您已將其從您使用檢查元素確認的DOM中移除。

+0

好的。 然後機器人,爬蟲會看到並訪問我刪除的鏈接,因爲他們得到的頁面,因爲它是在jQuery刪除任何東西之前? – color

+0

@color,鏈接將確實在服務器的html響應中,除非您將其移除到服務器端。就機器人而言,它將取決於在爬行頁面之前是否處理JavaScript。這裏是一個谷歌鏈接,關於該鏈接的一些信息https://developers.google.com/webmasters/ajax-crawling/docs/learn-more – ykay

+0

Tank you,@ykay。 我會看看我能做些什麼來隱藏漫遊器的鏈接。 – color