jQuery搜索PHP动态生成的单选按钮列表时首项始终显示如何解决
问题根因
搜索逻辑错误出现在jQuery代码的if (!index) return;行:
jQuery的each()方法遍历元素时,索引index从0开始计数,列表第一个.searchable条目对应的索引就是0。!index的判断逻辑会在遍历到第一个元素时直接返回,跳过后续的匹配和显隐控制逻辑,因此第一个条目永远保持初始显示状态,不会受搜索关键词匹配结果影响。
修复方案
直接删除if (!index) return;这行即可,你还可以根据需求选择是否新增不区分大小写的搜索适配,修复后的参考代码如下:
$("#addplantSearch").keyup(function() { // 可选:将搜索值转小写,实现不区分大小写搜索 var value = this.value.toLowerCase(); $(".addplant-list").find(".searchable").each(function(index) { // 对应将匹配文本也转小写 var id = $(this).find("span").first().text().toLowerCase(); $(this).toggle(id.indexOf(value) !== -1); }); });
内容的提问来源于stack exchange,提问作者user17225961
相关产品推荐
相关产品推荐

