Javascript 更改由引号或自定义标记包围的文本的颜色

Javascript 更改由引号或自定义标记包围的文本的颜色,javascript,jquery,Javascript,Jquery,我有一个奇怪的例子,我需要搜索我的导航链接标题,并根据它们的标记更改特定的颜色 出于我无法控制的原因,在我使用的CMS工具中,我有一个单一的输入字段作为导航项目的标题 比如说,在这个例子中,它是“为什么选择堆栈溢出?” 我想实现一个javascript钩子,它可以更改“为什么选择”的颜色,并将“堆栈溢出”保留为其正常的css样式 我在考虑引入一些类似于论坛代码的东西,比如,“*为什么选择*堆栈溢出?” 现在,我可以使用javascript搜索*并替换为 我看到了jquery的[name$],但对

我有一个奇怪的例子,我需要搜索我的导航链接标题,并根据它们的标记更改特定的颜色

出于我无法控制的原因,在我使用的CMS工具中,我有一个单一的输入字段作为导航项目的标题

比如说,在这个例子中,它是“为什么选择堆栈溢出?”

我想实现一个javascript钩子,它可以更改“为什么选择”的颜色,并将“堆栈溢出”保留为其正常的css样式

我在考虑引入一些类似于论坛代码的东西,比如,
“*为什么选择*堆栈溢出?”

现在,我可以使用javascript搜索*并替换为

我看到了jquery的[name$],但对它太不熟悉,无法真正理解如何让它工作

下面是一些HTML来帮助您完成此示例:

  <nav>
    <ul>
      <li><a href="#"><div class='stext'>IT'S YOUR RIGHT TO</div>BREATHE RIGHT</a>
        <ul>
          <li><a href="#"><div class='stext'>IT'S YOUR RIGHT TO</div>BREATHE RIGHT</a></li>
          <li><a href="#"><div class='stext'>THE BENEFITS OF</div>BREATHING RIGHT</a></li>
          <li><a href="#"><div class='stext'>HOW BREATHE RIGHT</div>WORKS</a></li>
          <li><a href="#"><div class='stext'>BREATHE RIGHT</div>PRODUCTS</a></li>
        </ul>
      </li>

      <li><a href="#"><div class='stext'>THE BENEFITS OF</div>BREATHING RIGHT</a></li>
      <li><a href="#"><div class='stext'>HOW BREATHE RIGHT</div>WORKS</a>
        <ul>
          <li><a href="#"><div class='stext'>IT'S YOUR RIGHT TO</div>BREATHE RIGHT</a></li>
          <li><a href="#"><div class='stext'>THE BENEFITS OF</div>BREATHING RIGHT</a></li>
          <li><a href="#"><div class='stext'>HOW BREATHE RIGHT</div>WORKS</a></li>
          <li><a href="#"><div class='stext'>BREATHE RIGHT</div>PRODUCTS</a></li>
        </ul>
      </li>
      <li><a href="#"><div class='stext'>BREATHE RIGHT</div>PRODUCTS</a></li>
    </ul>
  </nav>

这就是我想要它看起来的样子。我想让它相当健壮,因为它将扫描第一个
*
添加
,然后在下一个
*
添加

如果我了解了用于此任务的正确jquery/javascript,我可能会让它正常工作

任何其他的建议都会很好!谢谢

(同样,由于我们使用的CMS工具,我无法对链接标题进行任何其他编辑,因此这是我能想到的最好的解决方案)

类似的东西

$("a").each(function() {
  this.innerHTML = this.innerHTML.replace(
               /\*([^\*]+)\*/g, 
               '<div class="stext">$1</div>');
});
$(“a”)。每个(函数(){
this.innerHTML=this.innerHTML.replace(
/\*([^\*]+)\*/g,
'$1');
});

(请参阅)

查找bbcode,更重要的是查找javascript bcode解析器。简单的一点正则表达式,你可以指定你自己的标记,以及在正则表达式替换模式中将它们转换成什么。我不知道为什么你需要javascript来完成这一点-你不能控制CSS吗?或者示例中的HTML只是您认为在应用javascript后它会是什么样子的表示吗?@jake提供的HTML只是一个示例。基本上,我希望它看起来像JS经过它。谢谢。这正是我所需要的。这个答案不是很有效,因为当你有
时,甚至
…和…
都会突出显示