[英]Method to change self-closing tags to explicit tags in Javascript?
是否存在可以将自关闭标签转换为 Javascript 中的显式标签的方法或函数? 例如:
<span class="label"/>
转换成 :
<span class ="label"></span>
我想从 iframe 复制一个新的 HTML 到主页的外层 HTML,因为生成的新 HTML 包含自关闭标签,外层 HTML 无法识别它们,然后不会改变,页面也不会显示正确。 但是当格式是标准的,也就是带有非自闭标签的时候,outerHTML 会采用新的HTML,页面显示完美。这就是我想改变标签的原因。
其实我不想解析HTML,我只想找到“<span.../>”并替换为“<span...></span>”
试试这个来替换你的字符串中的所有自结束标签(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];
}
我会使用正则表达式:
var spansFixed = htmlString.replace(/<span(.*)\\/>/g, '<span$1></span>');
谢谢大家,我终于用傻逼的方法改了自闭标签,说不定对我这样的人有帮助:
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]+">";
}
}
function setCharAt(str,index,chr) {
if(index > str.length-1) return str;
return str.substr(0,index) + chr + str.substr(index+1);
}
我想不出有什么需要,因为它们会被浏览器自动转换。 这可以通过以下方式证明:
var div = document.createElement('div');
div.innerHTML = '<span/>';
var span = div.getElementsByTagName('span')[0];
span.innerHTML = 'hello';
alert(span.innerHTML);
编辑:这似乎只适用于 XML 模式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.