[英]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);
}
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.