繁体   English   中英

如何使用JavaScript将p标签替换为br

[英]How to replace p tag to br using javascript

我将如何替换它:

<p class='abc'>blah blah</p> afdads

有了这个:

blah blah <br/>

使用(香草?)JavaScript?

谢谢!

更新内容

$content = $_REQUEST['content'];
$content = preg_replace('/<p[^>]*>/', '', $content); // Remove the start <p> or <p attr="">
$content = preg_replace('/</p>/', '<br />', $content); // Replace the end
echo $content; // Output content without P tags

我会这样...希望您的队友这次有我的问题。

谢谢

感谢您发布此问题,您是救生者,GitsD。

我将您的php函数替换为javascript,它起作用了!

content = content.replace(/<p[^>]*>/g, '').replace(/<\/p>/g, '<br />');

现在,内容将用''替换p标签,并用br替换/ p标签

您可以(如果您谈论字符串)

var str = "<p class='abc'>blah blah</p> afdads";

str = str.replace("<p class='abc'>", "");
str = str.replace("</p> afdads", " <br/>");
//str = "blah blah <br/>"

恐怕您的问题没有明确说明。 假设您要对该类的所有p标签执行此操作,并且您正在Web浏览器环境中工作:

var paras = document.getElementsByTagName('p')
for (var i = 0; i < paras.length; ) {
  if (paras[i].className.match(/\babc\b/)) {
    var h = paras[i].innerHTML
      , b = document.createElement('br')
      , t = document.createTextNode(h)
      , p = paras[i].parentNode
    p.replaceChild(b, paras[i])
    p.insertBefore(t, b)
  }
  else {
    i++
  }
}

如果您实际上是指JavaScript而不是PHP,则可以这样做:

var ps = document.getElementsByTagName('p');
while (ps.length) {
    var p = ps[0];
    while (p.firstChild) {
        p.parentNode.insertBefore(p.firstChild, p);
    }
    p.parentNode.insertBefore(document.createElement('br'), p);
    p.parentNode.removeChild(p);
}

之所以有效,是因为getElementsByTagName返回的NodeList是“ live”的,这意味着当我们从文档中删除p节点时,它也会从列表中删除。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM