[英]formatting a messed html code with some rules
need to format a messed html code and the function below is fine but...:需要格式化一个混乱的 html 代码和下面的 function 很好但是......:
elwrap
I need an extra line break after its closing tagelwrap
我需要在结束标记后额外换行elmark
I need it in one single line:elmark
我需要它在一行中:<div class='elmark'></div>
<div class='elmark'></div>
Any help?有什么帮助吗?
function format(ht){ var result = ''; ht.split(/>\s*</).forEach(function(element){ result += '<' + element + '>\r\n'; }); return result.substring(1, result.length-3); } $('button').on('click', function(){ let ht = $('#story').html(); ht = format(ht); console.log(ht); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id='story'> <div class='elwrap'><div class='elmark'></div> <div class='el'>lorem</div></div><div class='elwrap'><div class='elmark'></div> <div class='el'>ipsum</div></div> </div> <button>CLICK</button>
Something like this maybe helps?像这样的东西可能有帮助?
Basically you give it a dummy data under some conditions, then remove it after "format".基本上,您在某些条件下给它一个虚拟数据,然后在“格式化”后将其删除。
function format(ht) { var result = ''; ht.split(/>\s*</).forEach(function(element) { result = result.split("empty").join(""); result += '<' + element + '>\r\n'; result = result.replace('br style="display:none"', '').replace("<>", '').replace(" ", ''); }); return result.substring(1, result.length - 3); result = result.split("empty").join(""); } $('button').on('click', function() { [...document.querySelectorAll(".elwrap")].forEach(element => element.outerHTML += '<br style="display:none">'); [...document.querySelectorAll("#story *")].forEach(element => {if (element.innerHTML === "") {element.innerHTML = 'empty';}}); let ht = $('#story').html(); ht = format(ht); $('#story').html(ht); console.log(ht); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id='story'> <div class='elwrap'> <div class='elmark'></div> <div class='el'>lorem</div> </div> <div class='elwrap'> <div class='elmark'></div> <div class='el'>ipsum</div> </div> </div> <button>CLICK</button>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.