我的验证摘要有时会在底部有多个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()
功能。什么是这样简单的替代品?
答案 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