gpt4 book ai didi

javascript - 在循环中按类删除 img

转载 作者:太空宇宙 更新时间:2023-11-04 01:33:02 24 4
gpt4 key购买 nike

我正在尝试使用来自端点的数据构建轮播。我不知道在服务器中使用哪个尺寸,所以在前端我做了一些处理来决定要使用的图像尺寸。之后,我隐藏不使用的图像。当我执行 display:none 时,它仍然会触发 HTTP 请求,因此会影响我的性能。我尝试使用 remove() 而不是 .css('display','none'); 但是因为我正在使用类,所以删除了其他图像。

如何在不影响其他人的情况下删除循环中的图像?

这是数据,我从服务器(组件)获得以下 10 个。

<div class="foo-grid-img">
<img src="https://cdn.com/image/1.jpg" class="foo-big" />
<img src="https://cdn.com/image/2.jpg" class="foo-small" />
<img src="https://cdn.com/image/3.jpg" class="foo-horizontal" />
<img src="https://cdn.com/image/4.jpg" class="foo-vertical" />
</div>

<div class="foo-grid-img">
<img src="https://cdn.com/image/a.jpg" class="foo-big" />
<img src="https://cdn.com/image/b.jpg" class="foo-small" />
<img src="https://cdn.com/image/c.jpg" class="foo-horizontal" />
<img src="https://cdn.com/image/d.jpg" class="foo-vertical" />
</div>

var fooConf = [['big'],['vertical','big'],['small','small','horizontal'],['vertical','big','horizontal','horizontal'],['vertical','big','horizontal','small','small']];


for (var i = 0; i < components.length; i++) {

// elided

var fooClass = fooConf[components.length-1][i];

if("foo-"+fooClass != fooBig.attr("class")) {
cItem.find('.foo-big').css('display','none');
}
if("foo-"+fooClass != fooSmall.attr("class")) {
cItem.find('.foo-small').css('display','none');
}
if("foo-"+fooClass != fooHorizontal.attr("class")) {
cItem.find('.foo-horizontal').css('display','none');
}
if("foo-"+fooClass != fooVertical.attr("class")) {
cItem.find('.foo-vertical').css('display','none');
}

}

我需要一个最终结果,如下所示呈现为 html。

<div class="foo-grid-img">
<img src="https://cdn.com/image/1.jpg" class="foo-big" />
</div>

<div class="foo-grid-img">
<img src="https://cdn.com/image/d.jpg" class="foo-vertical" />
</div>

最佳答案

根据相关新信息更新:

var $imageDivs = $('div.foo-grid-img'); //grab all sets

//iterate over all sets and remove images that dont belong in the corrensponding fooConf[i]
for(var i = 0; i < fooConf.length; i++) {
$imageDivs[i].find('img').each(function(){
var $this = $(this);
var className = $this.attr('class');
if(!$.inArray(className.replace('foo-', ''), fooConf[i])){
$this.hide(); //or remove()
}
});
}

关于javascript - 在循环中按类删除 img,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46736280/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com