使用jQuery或PHP从页面中删除冗余HTML代码?

使用jQuery或PHP从页面中删除冗余HTML代码?,php,jquery,concrete5,Php,Jquery,Concrete5,我有一些代码在我的Concrete5模板,我不需要,如果用户没有上传画廊图片。因此,如果以下代码不包含图像,我需要删除它: <ul class="Gal_2"> <li class="Frst"> </li> <li> </li> </ul> 当图像位于以下位置时,它看起来是这样的: <ul class="Gal_2"> &

我有一些代码在我的Concrete5模板,我不需要,如果用户没有上传画廊图片。因此,如果以下代码不包含图像,我需要删除它:

<ul class="Gal_2">
       <li class="Frst">    
       </li>

       <li>
       </li>
</ul>
当图像位于以下位置时,它看起来是这样的:

<ul class="Gal_2">
    <li class="Frst">
        <p><a rel="group" href="/concrete/files/2113/6352/1788/Lighthouse.jpg"><img width="1024" height="768" alt="Lighthouse.jpg" src="/concrete/files/2113/6352/1788/Lighthouse.jpg"></a>
        </p>
    </li>
    <li>
        <p><a rel="group" href="/concrete/concrete/themes/greek_yogurt/Images/TEMP_IMG1.jpg"><img width="800" height="537" alt="Island Rab" src="/concrete/concrete/themes/greek_yogurt/Images/TEMP_IMG1.jpg" style="float: left;"></a>
        </p>
    </li>
</ul>
检查和删除标记的最快方法是什么?

尝试使用和

$('.Gal_2:not(:has(a))').remove();

您可以这样做:

如果(!$('.Gal_2 img')。长度){ $('.Gal_2')。删除(); }

案例的固定版本有一个.Gal_2带有图像,另一个没有图像:

$('.Gal_2').each(function() {
   if (! $(this).find('img').length) {
      $(this).remove();
   }
});

您可能会使用以下内容:

if (!$('img', 'ul.Gal_2 li')) {
    $('ul.Gal_2 li').hide();
    // or
    $('ul.Gal_2 li').remove();
}

请尝试以下操作:

<?php if (count($images)):?>
<ul class="Gal_2">
    <?php foreach($images as $index => $image):?>
        <li <?php echo $index == 0 ? 'class="Frst"' : ''?>>
            <p>
                <a rel="group" href="<?php echo $image['path']?>">
                    <img width="1024" height="768" src="<?php echo $image['path']?>">
                </a>
            </p>
        </li>
    <?php endforeach?>
</ul>
<?php endif?>

最好在服务器端将其过滤掉,因为用户不需要这些空元素——首先,它们必须通过HTTP请求传输,然后,它们必须通过JavaScript删除。

另一个

if($(".Frst").children().length) ? **do smthng** : $(".Gal_2").remove();

在生成HTML页面的过程中,您应该能够在PHP服务器端检查这一点。。。因为它使用自定义块来输出HTML标记。而不是否决投票?也许PHP中的一些帮助或建议会很好!!在服务器上验证side@PriceCheaperton:从何处加载图像?如果从客户端(Javascript)删除内容,则完全没有用,因为网络ha已用于传输无用数据,浏览器已花时间加载DOM,包括无用部分。然后,您正在使用javascript时间删除DOM的一小部分(您的浏览器并不真正关心它)。+1如果您将
\Gal_2
更改为
.Gal_2
,它会起作用。谢谢@insertusernamehere,您真是太好了。谢谢您花时间给我看这个。。。我认为这是最好的学习方式,通过有答案,我可以想象它。知识应该被分享。。再次感谢。如果有多个.Gal_2列表,并且其中一个列表中有图像,则此操作不会删除库元素。感谢您发现此问题,我已使用固定版本更新了答案。此解决方案将删除其中有图像的列表。OP想要相反的结果。哎呀,今天不是我的日子,再次修正,谢谢提醒:-)