如何使用JavaScript和jQuery在HTML中将“<br/> <br/>”替换为“<br/>”?

时间:2013-02-08 15:28:59

标签: jquery

我的验证摘要有时会在底部有多个br标记,如下所示:

<div id="ValidationSummary1" class="alert alert-error">
    Last 4-digits of Social Security number does not match 
    the Member record on file for the Member ID number you 
    have entered.<br />
    Date of Birth does not match the Member record on file for the Member ID 
    number you have entered.<br /><br />
</div>

我试图找到任何时候有两个br标签背靠背并用下面的标签替换它:

$('#ValidationSummary1').replace('<br /><br />', '<br />');

我知道没有replace()功能。什么是这样简单的替代品?

4 个答案:

答案 0 :(得分:14)

使用.html()获取并设置通过标准JS replace()传递内容的内容。

var div = $('#ValidationSummary1');
div.html(div.html().replace('<br /><br />', '<br />'));

答案 1 :(得分:0)

JavaScript本身 具有replace函数,并且假设jQuery是在 JavaScript上构建的框架,那么您确实可以使用该方法。所以,这意味着你将不得不做一个get-manipulate-set过程,而不是一些好的jQuery方法链接来实现它。

答案 2 :(得分:0)

 var $val= $('#ValidationSummary1');
 $val.html($val.html().replace(/[<br>]+$/, '<br/>');

无论是多少,他们都会被一个(更好的HTML)替换

答案 3 :(得分:0)

在您的情况下(需要删除html标记),最佳解决方案是使用.text()而不是.html()。区别在于.html()保留了html标记,而.text()只保留了文本(删除了任何html)。

例如:

var value1 = $('.some_div').html(); //returns text content with HTML tags
var value2 = $('.some_div').text(); //returns only text content