You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

图片搜索结果计数多1,如何将结果数减1修正?

解决搜索结果计数多1的问题

问题原因

你添加的外层<li class="in2">会被选择器$('#list2 .in2')统计进去,导致实际图片数量+1的错误计数。

解决方案

方案1:调整计数逻辑,直接减1(最简单快速)

修改代码中两处计算jobCount的地方,将计数结果减1,同时用Math.max避免出现负数:

原代码:

var jobCount = $('#list2 .in2').length;

修改为:

var jobCount = Math.max(0, $('#list2 .in2').length - 1);

这样初始时9-1=8,搜索匹配3个时3-1=2,完全符合实际图片数量,且无结果时0-1会被修正为0,不会显示负数。

方案2:精准选择图片对应的<li>元素(更规范)

直接选择外层<li>内部的图片项,避免统计外层容器:

原代码:

var jobCount = $('#list2 .in2').length;

修改为:

var jobCount = $('#list2 .panel .in2').length;

这个方法更精准,因为它只统计包裹图片卡片的<li>,完全排除外层的容器<li>,逻辑上更严谨。

方案3:修改HTML结构,区分容器与图片项(最彻底)

将外层的<li class="in2">的类名改为其他名称(比如container-li),避免和图片项的in2类冲突:

修改HTML:

<li class="container-li">
  <!-- 内部按钮、panel等内容保持不变 -->
</li>

同时调整搜索逻辑中的元素选择,确保隐藏/显示逻辑正常:

// 替换原有的选择器
$("#list2 li.container-li").not(":containsi('" + searchSplit + "')").each(function(e) {
  $(this).addClass('hiding out').removeClass('container-li');
  setTimeout(function() {
      $('.out').addClass('hidden');
    }, 300);
});

$("#list2 li.container-li:containsi('" + searchSplit + "')").each(function(e) {
  $(this).removeClass('hidden out').addClass('container-li');
  setTimeout(function() {
      $('.container-li').removeClass('hiding');
    }, 1);
});

修改后,原计数代码$('#list2 .in2').length就只会统计图片项,无需额外调整。


内容的提问来源于stack exchange,提问作者mbkadoglu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 18:10:37