如何用jQuery查找输入值相同的表格行,填入EQUAL并高亮对应tr
实现思路
你可以先对所有数据行按「品牌+车型」分组,只要分组内的行数≥2,就统一处理组内所有行的第一列输入和行高亮,就能覆盖所有匹配的行,不会遗漏。
完整实现代码
可选CSS(比行内样式更易维护)
tr.highlight { background-color: red; }
JS逻辑
// 用于按car+model分组存储对应行 const rowGroups = {} // 遍历所有数据行(跳过表头行) $('table tr:gt(0)').each(function() { const $tr = $(this) const car = $tr.find('.car').val().trim() const model = $tr.find('.model').val().trim() // 用car+model做唯一分组key,担心分隔符冲突可以替换为JSON.stringify([car,model]) const groupKey = `${car}||${model}` if (!rowGroups[groupKey]) { rowGroups[groupKey] = [] } rowGroups[groupKey].push($tr) }) // 遍历所有分组,处理重复的组 Object.values(rowGroups).forEach(group => { if (group.length >= 2) { group.forEach($tr => { // 不想加CSS类可以替换为 $tr.css('background-color', 'red') $tr.addClass('highlight') $tr.find('.equal').val('EQUAL') }) } })
原有代码问题说明
nextAll('tr').find(".car").val()只会取后续所有行里第一个.car输入框的值,无法匹配非相邻的相同行- 只会给当前行设置
EQUAL,不会处理后续匹配到的相同行,会漏掉另一半匹配项
内容的提问来源于stack exchange,提问作者tonydeleon
相关产品推荐
相关产品推荐

