<span class="WorkingHours">
M,W,Th,F 7:30 AM - 4:00 PM <br />Tu 7:30 AM - 6:00 PM <br />
</span>
将呈现为此
M,W,Th,F 7:30 AM - 4:00 PM <br />Tu 7:30 AM - 6:00 PM <br />
现在我需要在呈现之前将<br />
替换为空格?
我已经问了一个类似的问题,但我低估了这个问题的诡计......
我这样做了
$('.WorkingHours').text().replace(/<br \/>/g, " ");
没有用。有人可以帮我解决这个问题吗?
不应该这样吗?
$('.WorkingHours').text().replace(/<br \>/g, " ");
答案 0 :(得分:2)
这将有效:
$('.WorkingHours').text(function(i, text) {
return text.replace(/<br\s*\/?>/g, " ");
});
在这种情况下,.html()
将返回HTML实体(<
),而.text()
将返回已解码的字符(即<
)。鉴于此,
$('.WorkingHours').text().replace(/<br \/>/g, " ")
实际上是works as well,但你仍然需要将结果分配回元素。
关于用不同的字符替换最后的<br />
:可能使用正则表达式,但在这种情况下,我只是将文本解析为HTML并执行与我显示的相同的操作{{3} }:
var $content = $('<div />').html($('.WorkingHours').text());
$content
.find('br').last().replaceWith('.')
.end().replaceWith(' ');
$('.WorkingHours').html($content.html());
答案 1 :(得分:0)
你必须转义HTML字符才能完成模式......
replace(/\<br \/\>/g, " ");
答案 2 :(得分:0)
如果你在标记中有html实体,请尝试替换它们
replace('<br \/>', ' ')
看起来你错过了一个“/”