如何去掉
标签并用

标签换行?

2023-12-12

这就是 HTML 代码的样子。我需要去掉 br 标签并将行包裹在段落标签中(即带有日期的行)。每个日期都应该包含在自己的段落标签中。

<html>
<head><script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>


<h2>Other Events</h2>                       
<p>
<strong>Venue name</strong>
</p>
<div class="details">
<p>
Wednesday, May 11, 2011 <br>
Wednesday, June 08, 2011 <br>
Wednesday, July 13, 2011 <br>
Wednesday, August 10, 2011 <br>
Wednesday, September 14, 2011 <br>
Wednesday, October 12, 2011 <br>
Wednesday, November 09, 2011 <br>
19.00
<br>
</p>
</div>

</body>
</html>

我尝试了在 Google 上搜索后找到的这段 jQuery 代码,但它根本不起作用:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('body').html($('body').html().replace(/<br>\*/g,"</p><p>"));
});

我也尝试了这段代码,但不是将日期包装在段落标签中,而是在每行末尾放置空段落标签:

$(document).ready(function(){
$('.details p br').replaceWith('<p></p>');
}); 

这就是 HTML 输出的样子。正如您所看到的,它没有正确地用 p 标签包裹日期行:

<div class="details">
<p>
Wednesday, May 11, 2011 <p></p>
Wednesday, June 08, 2011 <p></p>
Wednesday, July 13, 2011 <p></p>
Wednesday, August 10, 2011 <p></p>
Wednesday, September 14, 2011 <p></p>
Wednesday, October 12, 2011 <p></p>
Wednesday, November 09, 2011 <p></p>
19.00
<p></p>
</p>
</div>

有谁知道解决这个问题的方法吗?


Edit:通过使用<p>以这种方式标记你的整个运行purpose相反,你应该尝试删除<br>标签并将文本放入其中<p>元素,将具有相同的效果,但将语义上正确。

Edit2:我认为您希望以上述方式获得它,只需三遍阅读您的问题,我想我明白了!

var $p = $('.details p');
$p.contents()
  .filter(function() { return this.nodeType == 3; }) // Select all textnodes
  .wrap('<p>') // Place them inside paragraph elements

$('br', $p).remove(); // Remove all break elements

工作小提琴: http://jsfiddle.net/garreh/UWDw5/1/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何去掉
标签并用

标签换行? 的相关文章

随机推荐