代码之家  ›  专栏  ›  技术社区  ›  Birdie Golden

使用remove()确保元素在DOM中不可见或通过查看源代码

  •  0
  • Birdie Golden  · 技术社区  · 3 年前

    我希望你能帮我解决一个JS问题。

    问题是: 当一个类存在时,我正在删除一个元素,当我点击CTR-U并搜索该元素时,虽然这可以通过inspector从DOM中删除该元素,但它仍然是可搜索/可见的。

    博客文章: https://www.leatherhoney.com/blogs/leather-care/diy-leather-car-interior-detailing-tips

    背景: 开发我们网站的公司在我们的博客文章中添加了(2)个H1标题。如果标题存在,他们就用CSS隐藏了一个。这当然会给页面上的多个H1带来问题,即使它在视觉上是隐藏的。

    解决方法: 修复方法是删除隐藏元素的CSS属性,并用remove()函数替换它。理论上,当CSS类出现时,这将完全从页面(以及SEO爬虫)中删除该元素。

    $(".hide-when-banner-enabled").remove();
    

    页面:

    这是答案 博客页面 : https://www.leatherhoney.com/blogs/leather-care/diy-leather-car-interior-detailing-tips

    这是答案 源代码页 (ctrl-U)仍然可以看到该类 .启用横幅时隐藏 即使它应该被移除: https://www.leatherhoney.com/blogs/leather-care/diy-leather-car-interior-detailing-tips

    有人能告诉我为什么这仍然是可见的,如果有一个类存在时,有没有更好的方法来删除这个重复的H1标签,这样SEO就不会受到重复标签的影响?

    非常感谢。

    1 回复  |  直到 3 年前
        1
  •  5
  •   Quentin    3 年前

    浏览器接收HTML文档,将其转换为DOM,并运行修改DOM的JS。

    源代码保持不变。这是源代码,不是当前状态的反映。

    你不希望网络浏览器能够重写服务器上的代码:这会导致你的主页每秒被新的垃圾邮件破坏30次。

    如果要更改服务器发送到浏览器(或发送到搜索引擎索引机器人)的HTML,则需要修复它 在服务器上 .