1 回答
TA贡献1836条经验 获得超3个赞
您可以将.each()函数链接到.nextAll()结果,然后用于.hasClass()单独确定每个单元格应使用哪种颜色。
$(function() {
$("td").click(function() {
$(this).nextAll(':lt(4)').each(function(i) {
if ($(this).hasClass("color2")) {
$(this).addClass('color3');
}
else if ($(this).hasClass("color")) {
$(this).addClass('color2');
}
else {
$(this).addClass('color');
}
console.log(i);
});
});
});
table td {
width: 20px;
overflow: hidden;
display: inline-block;
white-space: nowrap;
border: 1px solid gray;
text-align: center;
padding: 5px;
cursor: pointer;
}
.color {
background-color: hsl(60,100%,95%);
}
.color2 {
background-color: hsl(60,100%,90%);
}
.color3 {
background-color: hsl(60,100%,85%);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
<td>7</td>
<td>8</td>
<td>9</td>
</tr>
</table>
它可能需要一些调整来删除不需要的类,但我测试过并且似乎可以按原样工作。
- 1 回答
- 0 关注
- 63 浏览
添加回答
举报