jQuery按双条件为表格行着色失效,如何正确编写复合判断逻辑?
问题原因
- 你的代码存在逻辑错误,不是
&&运算符不能使用,而是嵌套的两个each遍历没有绑定「同一行的第二列、第三列」的对应关系:只要外层任意一个第二列单元格满足年份条件,内层就会给整个表格所有第三列为“Ne”的行加样式,相当于年份条件实际没有起到行匹配的作用。 - 另外注意你的需求是年份≤2004,原代码里写的判断阈值是2005,也需要同步修正。
修正后的代码
$(function(){ $("#randa").click(function(){ // 直接遍历表格每一行做判断 $("#lentele tr").each(function() { const year = parseInt($(this).find("td:nth-child(2)").text()); const col3Val = $(this).find("td:nth-child(3)").text(); // 用&&组合两个复合条件 if (year <= 2004 && col3Val === "Ne") { $(this).addClass('spalvinti'); } }) }) })
修正后只会对同一行同时满足两个条件的记录添加着色样式,不会出现全局匹配第三列的问题。
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

