使用其他javascript删除字符串中字符的所有实例

我需要用空格替换所有
。 下面是动态吐出的字符串,我需要隐藏br标签……

 M,W,Th,F 7:30 AM - 4:00 PM
Tu 7:30 AM - 6:00 PM

我做错了什么?是否可以用逗号替换所有其他br标签,除了最后一个,将由空格重新标记

 $('.WorkingHours').text().replace(/
/g, " ");

您的代码有三个问题:

  1. $('.WorkingHours').text()不包含任何HTML(因此也没有br标签),它只返回元素的文本内容。
    $('.WorkingHours').text()返回:

    M,W,Th,F 7:30 AM - 4:00 PMTu 7:30 AM - 6:00 PM

    $('.WorkingHours').html()返回:

    M,W,Th,F 7:30 AM - 4:00 PM
    Tu 7:30 AM - 6:00 PM

  2. 你必须逃避表达式中的内部反斜杠。 编辑:看看.html()的输出它实际上不包含
    但是
    。 这可能取决于文档的doctype( 不是工作示例 , 工作示例 )。

  3. 您必须将值分配回元素。

你可能会这样做

 $('.WorkingHours').html(function(i, html) { return html.replace(//g, " "); }); 

但是根本不使用正则表达式会更清晰:

 $('.WorkingHours').find('br').replaceWith(' '); 

这将查找所有br元素节点,并将其替换为仅包含空格的文本节点。

DEMO

更新 (响应您的一条评论):如果您想用句号替换最后一个br ,可以使用.last()

 $('.WorkingHours') .find('br').last().replaceWith('.') .end().replaceWith(' '); 

DEMO

情侣:

使用html()获取节点的HTML:

 var rawHTML = $('.WorkingHours').html(); 

使用\来转义正则表达式中的/

 /
/g

将HTML设置为替换函数的返回值:

 $('.WorkingHours').html(rawHTML.replace(/
/g, ' ');

最终产品:

 var rawHTML = $('.WorkingHours').html(); $('.WorkingHours').html(rawHTML.replace(/
/g, ' ');

使用.text()代替.html()来删除html标签

.text()只返回内部文本,而不是内部html。

我认为你需要逃避表达式中的正斜线,例如

 $('.WorkingHours').text().replace(/
/g, " ");

你需要逃避
的正斜杠:

 $('.WorkingHours').text().replace(/
/g, " ");

http://jsfiddle.net/uLYrH/1