为某些链接添加类属性

问题描述

我的网站上有通过翻译代理的页面。我需要某些链接显示的文本不被翻译。我可以将 class="notranslate" 添加链接中,翻译人员会跳过它没问题。但是,在实现翻译器之前,我已经创建了数百个页面,并且随着我的继续,我还会创建数百个页面 - 手动添加类并不是一个真正的选择。

我特别关注的链接显示文本为文字 URL 或电子邮件地址的链接。翻译器不会触及 href 属性,因此链接仍按预期工作,但显示的字符串会被破坏。例如,在越南语中,“organization@domain.com”显示为“tổ chức@domain.com”,并且显示文本应为“domain.com/committees”的链接被转换为“domain.com/commitaries”。 "

因此,我正在寻找一种解决方案来查找 a 元素,其显示文本包含“@”或“/”并添加 class="notranslate"。我认为我不需要太强大的解决方案,否则我不会经常在链接显示文本中使用“@”或“/”,如果有的话,除非在这些情况下。我猜这可以用 Javascript 来完成,但我充其量只是一个 JS 初学者。通过 wordpress 在后端过滤内容的选项也可能是一个不错的解决方案。

解决方法

使用 jquery 很简单,理想情况下需要在翻译插件之前加载。

注意:如果你已经像大多数 wordpress 主题一样加载了 jquery,那么你可以从这段代码中删除第一行,其中包括 jquery 库。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script type="text/javascript">
  $( document ).ready(function() {
    $("a").each(function() {
    
      let text = $(this).text();  
    
      if(text.includes("@")) {
        $(this).addClass('notranslate');
      }

      if(text.includes("/")) {
        $(this).addClass('notranslate');
      }
 
    })
});
</script>

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...