2015-08-18 47 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