如何解决有没有一种方法可以将两个或多个连续div标签中的第一个标签转换为span标签
我正在尝试将HTML中任何连续div的第一个div转换为一个范围。下面是一个例子
14.04.2020
所需的输出应该是
var Fdate = "2020-08-01T00:00:00";
var date = new Date(Fdate);
var dateFormat = sap.ui.core.format.DateFormat.getDateInstance({
pattern: "dd/MM/yyyy"
});
fdateFormatted = dateFormat.format(date);
我要实现的目的是编写一个函数,该函数接收HTML正文,然后返回带格式的HTML正文,并用span替换必要的divs
解决方法
将其用作模式文本,以捕获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);
}
})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。