javascript - 替换 Div 中的所有管道字符

标签 javascript jquery regex

我正在使用一个相当旧的网站并使其响应。开发人员设置了如下所示的“导航”,没有列表或任何内容。移动导航将是垂直的,我不想要“|”特点。我想在不触摸导航 HTML 或添加第二个菜单以在较小的屏幕上显示的情况下执行此操作。

<div id="mainNav">
  <a href="/home">Home</a>|
  <a href="/about">About</a>|
  <a href="/areas-of-practice">Areas of Practice</a>|
  <a href="/in-the-news">In the News</a>|
  <a href="/contact">Contact</a>
</div>

我已经尝试过这行 jQuery,但它似乎删除了标签以及“|”,留下了一串“HomeAboutAreas of PracticeIn the NewsContact”。我怎样才能只删除“|”并保持其他一切不变?

$('#mainNav').text(function(index,text){
  return text.replace(/[|]/g,'');
});

最佳答案

使用 .html 而不是 .text,以便保留 HTML。

当您仅替换一个字符时,也无需在正则表达式中使用 []。但是,您需要将管道字符转义到字符集之外,因为它意味着交替。

$("#doit").click(function() {
  $('#mainNav').html(function(index, text) {
    return text.replace(/\|/g, '');
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="mainNav">
  <a href="/home">Home</a>|
  <a href="/about">About</a>|
  <a href="/areas-of-practice">Areas of Practice</a>|
  <a href="/in-the-news">In the News</a>|
  <a href="/contact">Contact</a>
</div>
<button id="doit">Remove pipes</button>

关于javascript - 替换 Div 中的所有管道字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29836745/

相关文章:

javascript - 如何仅使用源 URL 而不是原始文件来调整图像大小?

javascript - 如何使用 JavaScript 自动计算页面加载付款?

javascript - 是否可以将 html(例如 bootstrap 图标)放在 DevExpress dxDataGrid 列标题中?

javascript - 如何让 Darkmode Js 不粘?

javascript - 我可以在 Bootstrap 单选按钮组中取消选择的项目上捕获什么事件

javascript - 如何用最少的代码行一次显示一个 div?

regex - 如何在 Perl 正则表达式中捕捉一个点?

python - Python 中的取消转义字符串

c - c中电话号码的正则表达式

javascript - 正则表达式:任何顺序的特定单词