簡體   English   中英

有沒有辦法將兩個或多個連續 div 標簽中的第一個轉換為 span 標簽

[英]Is there a way to convert the first of two or more consecutive div tags to a span tag

我正在嘗試將 HTML 中任何連續 div 的第一個 div 轉換為跨度。 下面是一個例子

<div><div>Hello</div></div>

所需的 output 應該是

<span><div>Hello</div></span>

我想要實現的是編寫一個 function 接收 HTML 正文,然后返回格式化的 HTML 正文,其中跨度替換必要的 div

將其用作捕獲 div 之間的文本的模式文本。

<div>(.*)<\/div>

將此用作替換文本

<span>$1</span>

你可以在這里查看 - https://regex101.com/r/02Rqj6/2

因此,以下代碼適用於您給出的示例。 這里的假設是<div><div><div>Hello</div></div></div>將變為<span><div><div>Hello</div></div></span>

  var divs = document.querySelectorAll("div");
  console.log(divs.length)
  divs.forEach(function(item,index){
    
  //the div should be the only child node if it's nested like this
   if(item.childNodes.length == 1 && item.childNodes[0].nodeName == "DIV")      
    {
     var span = document.createElement("SPAN");
     span.innerHTML = item.innerHTML; 
     item.parentNode.replaceChild(span, item);
    }
  })

小提琴: https://jsfiddle.net/txe48w5m/

消除<div>並<span>標記</span></div><div id="text_translate"><p>我正在使用 CKEditor 4.19.1。 如果我在另一個網站上拖動並復制並粘貼包含 and 標簽的內容,and 標簽就會消失。</p><p> 按版本測試時,正常復制粘貼 4.4.8 版本,但從 4.5.X 版本開始刪除標簽</p><p>下面的配置不起作用。</p><pre> config.allowedContent = true; config.format_tags = 'p;h1;h2;h3;pre;div'; config.extraAllowedContent = 'div';</pre><p> 我應該怎么辦?</p></div>

[英]Remove <div> and <span> tag

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM