jquery 或者php如何检测dom元素有无闭合
比如我的dom较为复杂
<div class="i_curr_content" style="DISPLAY: block"> //这个div没有闭合
<h3><a class="green" href="">8种超级抗压食品,吃掉压力!</a></h3>
<p> </p>
<div style="page-break-after: always;"><span style="display:none"> </span></div>
<p>众所周知,过大的压力会破坏我们的饮食习惯,2112132123</p>
<div style="page-break-after: always;"><span style="display:none"> </span></div>
请问 php或者jquery如何能查出这样没有闭合的html元素,并补上这个闭合元素</div>?
------解决方案--------------------用 DOMDocument::loadHTML 读入,在用 DOMDocument::saveHTML 写出
就自动补全了,但需要注意的是:html 文档中一定要有 <meta http-equiv="Content-Type" content="text/html; charset=???"> 标记,如果没有则自己加上
比如你的这段(假定是 gbk 的)
$s =<<< HTML
<div class="i_curr_content" style="DISPLAY: block"> //这个div没有闭合
<h3><a class="green" href="">8种超级抗压食品,吃掉压力!</a></h3>
<p> </p>
<div style="page-break-after: always;"><span style="display:none"> </span></div>
<p>众所周知,过大的压力会破坏我们的饮食习惯,2112132123</p>
<div style="page-break-after: always;"><span style="display:none"> </span></div>
HTML;
$s = '<meta http-equiv="Content-Type" content="text/html; charset=gbk">'.$s;
$doc = new DOMDocument;
$doc->loadHTML($s);
echo $doc->saveHTML();
将输出
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=gbk"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body><div class="i_curr_content" style="DISPLAY: block"> //这个div没有闭合
<h3><a class="green" href="">8种超级抗压食品,吃掉压力!</a></h3>