javascript - 在类似的 div 上不显示

标签 javascript jquery html css

我有几个 div 一个接一个……实际上有 10 个。 我想要一个 jquery 解决方案,这样它就可以通过 div,并且每当它发现任何相似的图像时,整个 div 都不会显示,或者又名 display:none 被插入到 css 类中。根据我在代码中的逻辑,类似的 div 只能彼此相邻。如下所示

<div class="tops">

<div class="col-xs-2 topleaderBoardSB">
<p class="smallImages"><img class="img-circle img-responsive" src="32399/images/pics/AxlRose.png"> </p>
<p class="smallText">Axl<br>Roses</p>
</div>

<div class="col-xs-2 topleaderBoardSB">
<p class="smallImages"><img class="img-circle img-responsive" src="32399/images/pics/AxlRose.png"> </p>
<p class="smallText">Axl<br>Roses</p>
</div>

<div class="col-xs-2 topleaderBoardSB">
<p class="smallImages"><img class="img-circle img-responsive" src="32399/images/pics/Eminem.png"> </p>
<p class="smallText">Eminem</p>
</div>

<div class="col-xs-2 topleaderBoardSB">
<p class="smallImages"><img class="img-circle img-responsive" src="32399/images/pics/Eminem.png"> </p>
<p class="smallText">Eminem</p>
</div>

<div class="col-xs-2 topleaderBoardSB">
<p class="smallImages"><img class="img-circle img-responsive" src="32399/images/pics/artistA.png"> </p>
<p class="smallText">artistA</p>
</div>



<div class="col-xs-2 topleaderBoardSB">
<p class="smallImages"><img class="img-circle img-responsive" src="32399/images/pics/artistA.png"> </p>
<p class="smallText">artistB</p>
</div>


<div class="col-xs-2 topleaderBoardSB">
<p class="smallImages"><img class="img-circle img-responsive" src="32399/images/pics/artistA.png"> </p>
<p class="smallText">artistA</p>
</div>



<div class="col-xs-2 topleaderBoardSB">
<p class="smallImages"><img class="img-circle img-responsive" src="32399/images/pics/artistG.png"> </p>
<p class="smallText">artistG</p>
</div>



<div class="col-xs-2 topleaderBoardSB">
<p class="smallImages"><img class="img-circle img-responsive" src="32399/images/pics/artistH.png"> </p>
<p class="smallText">artistH</p>
</div>



<div class="col-xs-2 topleaderBoardSB">
<p class="smallImages"><img class="img-circle img-responsive" src="32399/images/pics/artistI.png"> </p>
<p class="smallText">artistI</p>
</div>

</div>

此外,不会显示超过 5 个 div。并且如果在放置 display:none 后少于 5 个 div,那么无论如何都会显示 5 个 div,也就是最后几个 display:none 不会出现,因此始终显示 5 个 div。

jquery 解决方案会很好。

最佳答案

检查一下:

var images = [],
    img,
    count = 0;

$("img").filter(function(){
    img = $(this).attr("src");

    if($.inArray(img, images) < 0 && count < 5){
        images.push(img);
        count++;
        return false;
    }

    return true;
}).closest($('div')).hide();

它的工作方式是基本上抓取页面上的所有 img 标签,然后根据它们的 src 属性是否唯一来过滤它们。如果不是,则它会找到父 div 并将其隐藏。

由于 $.inArray,这有点不太理想,因此如果对您来说很重要,您可以对其进行调整。

JSFiddle

编辑:现在更新为仅限 5 个结果。

关于javascript - 在类似的 div 上不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19672134/

相关文章:

javascript - 需要对所提供的代码进行一些说明

javascript - SVG 的 x,y 属性真的有效吗?

javascript - 按降序从 Firebase 获取数据

jQuery 如果什么都不做就做某事

javascript - 将字符串转换为 jquery 对象并从中提取数据

javascript - 我怎样才能隐藏卡片?

javascript - 使用 Node Express 从 Apache Ignite 获取数据时出现问题

javascript - jspContainer 内缺少 div jspVerticalBar

html - Bootstrap 3 - 重叠内容(Clearfix?)

html - 如何使 div 的高度和宽度等于屏幕的宽度和高度?