在Javascript中将自关闭标签更改为显式标签的方法?

Jam*_*mie 5 html javascript tags

是否存在可以将自关闭标签转换为 Javascript 中的显式标签的方法或函数?例如:

<span class="label"/>
Run Code Online (Sandbox Code Playgroud)

转换成 :

<span class ="label"></span>
Run Code Online (Sandbox Code Playgroud)

我想从 iframe 复制一个新的 HTML 到主页的外层 HTML,因为生成的新 HTML 包含自关闭标签,外层 HTML 无法识别它们,然后不会改变,页面也不会显示正确。但是当格式是标准的,也就是带有非自闭标签的时候,outerHTML 会采用新的HTML,页面显示完美。这就是我想改变标签的原因。


这个 html 在一个字符串中

其实我不想解析HTML,我只想找到“<span.../>”并替换为“<span...></span>”

Cra*_*dks 5

试试这个来替换你的字符串中的所有自结束标签(xml/html)

function removeSelfClosingTags(xml) {
    var split = xml.split("/>");
    var newXml = "";
    for (var i = 0; i < split.length - 1;i++) {
        var edsplit = split[i].split("<");
        newXml += split[i] + "></" + edsplit[edsplit.length - 1].split(" ")[0] + ">";
    }
    return newXml + split[split.length-1];
}
Run Code Online (Sandbox Code Playgroud)


Jam*_*mie 1

谢谢大家,我终于使用愚蠢的方法来更改自关闭标签,也许它会帮助像我这样的人:

var splitSpan = textHTML.split(">");
var i=0;
for(i=0;i<splitSpan.length-1;i++){
    var lengthSpan = splitSpan[i].length;
    var subSpan = splitSpan[i].substring(1,5);
    var endSpan = splitSpan[i].charAt(lengthSpan-1);
    
    if(subSpan=="span" && endSpan=="/")
    {           
        splitSpan[i]=setCharAt(splitSpan[i],lengthSpan-1,'>');
        splitSpan[i]=splitSpan[i]+"</span>";
    }
    else
    {
        splitSpan[i]=splitSpan[i]+">";
    }
}
Run Code Online (Sandbox Code Playgroud)
var splitSpan = textHTML.split(">");
var i=0;
for(i=0;i<splitSpan.length-1;i++){
    var lengthSpan = splitSpan[i].length;
    var subSpan = splitSpan[i].substring(1,5);
    var endSpan = splitSpan[i].charAt(lengthSpan-1);
    
    if(subSpan=="span" && endSpan=="/")
    {           
        splitSpan[i]=setCharAt(splitSpan[i],lengthSpan-1,'>');
        splitSpan[i]=splitSpan[i]+"</span>";
    }
    else
    {
        splitSpan[i]=splitSpan[i]+">";
    }
}
Run Code Online (Sandbox Code Playgroud)