0

我有验证摘要,有时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

4 回答 4

14

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

var div = $('#ValidationSummary1');
div.html(div.html().replace('<br /><br />', '<br />'));
于 2013-02-08T15:31:13.017 回答
0

JavaScript 本身确实有一个replace函数,并且鉴于 jQuery 是一个基于JavaScript 构建的框架,您确实可以使用该方法。因此,这意味着您必须执行一个 get-manipulate-set 过程,而不是一些不错的 jQuery 方法链接来完成它。

于 2013-02-08T15:30:47.487 回答
0
 var $val= $('#ValidationSummary1');
 $val.html($val.html().replace(/[<br>]+$/, '<br/>');

无论
它们的数量将被替换为一个
(更好的 html)

于 2013-02-08T15:38:09.937 回答
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
于 2016-07-08T07:03:59.893 回答