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

发布于 2024-11-15 15:43:17 字数 575 浏览 1 评论 0原文

我该如何替换这个:

<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

我想要这样的东西......希望这次你们能明白我的问题。

谢谢

How would I replace this:

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

With this:

blah blah <br/>

Using (vanilla?) JavaScript?

Thanks!

Updated Content

$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

I would something like this...hope this time you mates have got my question.

Thankyou

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

或十年 2024-11-22 15:43:17

感谢您提出这个问题,您是救星,GitsD。

我将你的 php 函数替换为 javascript,它成功了!

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

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

Thank you for posting this question, you're a lifesaver, GitsD.

I replaced your php function to javascript and it worked!

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

content would now replaced p tags with '' and /p tags with br

握住我的手 2024-11-22 15:43:17

你可以做(​​如果你谈论字符串)

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/>"

You could do (if you talk about strings)

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/>"
这个俗人 2024-11-22 15:43:17

恐怕你的问题没有明确说明。假设您想对该类的所有 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++
  }
}

I'm afraid your question isn't well-specified. Assuming you want to do that to all p tags with that class, and you're working in a web browser environment:

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++
  }
}
九公里浅绿 2024-11-22 15:43:17

如果您实际上指的是 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 节点时,它也会从列表中删除。

If you actually meant JavaScript and not PHP, this would do it:

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);
}

This works because the NodeList returned by getElementsByTagName is ‘live’, meaning that when we remove a p node from the document, it also gets removed from the list.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文