2012-06-27 190 views
0

在输入时,我们有HTML这样的:解析HTML代码

<table> 
    <tr> 
     <td> 
      <img ...> 
     </td> 
     <td> 
      <img ...> 
     </td> 
     ... 
    </tr> 
</table> 

但在去年TD:

<td> 
    <img ...> 
    <img ...> 
<td> 

问题:如何去除第二img?我们可以使用PHP,JS和CSS。

+0

你要删除的页面加载后动态的IMG标签中的一个? – Danny

+0

你已经尝试了什么?互联网上已经有很多关于这个主题的资源了(已经看过DOM解析器)。 – Jeroen

+0

这个HTML来自哪里? –

回答

2
$dom = new DOMDocument(); 
$dom->loadHTML($yourhtmlstring); 
$x = new DOMXPath($dom); 
foreach($x->query('//td/img[2]') as $node) $node->parentNode->removeChild($node); 
echo $dom->saveHTML(); 
0

使用jQuery的删除功能

$("table tr:last-child > img:nth-child(2)").remove(); //i think this might work... 

JQuery remove

编辑

上述变更为删除第二图像不是最后

+0

为什么投下了投票? – Danny

+0

请提供一些引用的链接。如果链接中断,您的回答就会被删除。 PS。我不低估你。 – rcdmk

+0

@rcdmk:链接是jQuery文档。如果发生这种情况,会出现更大的问题。 –

0

如果你的HTML是从未来HTML页面或者是PHP生成:
使用jQuery A液:

$(document).ready(function(){ 
    $.each($("#your_table_id td "),function(){ 

     if($(this).find("img").length > 1) { 
      $(this).find("img:gt(0)").remove(); 
     } 
    }); 
}); 
+0

不完全。 'this'是一个不是jQuery对象的DOM元素。这也不是'.has()'的工作原理。 –

+0

我不确定,谢谢。 – jbrtrnd

+0

没有ID或类:( – user1486054

-1
<code> 
<table class="table"> 
    <tr> 
     <td> 
      <img> 
     </td> 
     <td> 
      <img> 
     </td> 
     <td> 
      <img > 
      <img > 
     </td> 
    </tr> 
</table> 
<script>$(".table tr:last img:last").hide();</script> 
</code> 
+0

如果最后一个'td'只有一个图像会怎样? –