javascript - 使用 JavaScript 单击其他卡片后将卡片向下翻转
问题描述
当单击一个项目时,我试图让文本说“向上”。单击另一个项目时,该项目应显示“向上”,其他项目应显示“向下”
这就是我到目前为止所拥有的。没有点击,我无法让其他项目“下降”。
const cards = document.querySelectorAll(".card");
cards.forEach((card, i, arr) => {
card.addEventListener("click", (e) => {
let clickedCard = e.target;
if (clickedCard.textContent == "down") {
clickedCard.textContent = "up";
} else if (clickedCard.textContent == "up") {
clickedCard.textContent = "down";
}
});
});
<table id="card-container">
<tbody>
<tr>
<td class="card">down</td>
<td class="card">up</td>
</tr>
<tr>
<td class="card">down</td>
<td class="card">down</td>
</tr>
<tr>
<td class="card">down</td>
<td class="card">down</td>
</tr>
</tbody>
</table>
解决方案
而不是检查单词是“向上”还是“向下”,您可以将所有单词设置为“向下”并在(内部)循环之后将您的clickedCard
背部设置为“向上” 。
const cards = document.querySelectorAll(".card");
cards.forEach((card, i, arr) => {
card.addEventListener("click", (e) => {
let clickedCard = e.target;
// Set all items to "down"
cards.forEach((card, i, arr) => {
card.textContent = "down";
});
// Set clicked item to "up"
clickedCard.textContent = "up";
});
});
<table id="card-container">
<tbody>
<tr>
<td class="card">down</td>
<td class="card">up</td>
</tr>
<tr>
<td class="card">down</td>
<td class="card">down</td>
</tr>
<tr>
<td class="card">down</td>
<td class="card">down</td>
</tr>
</tbody>
</table>
推荐阅读
- python - 正则表达式获取逗号分隔值之间的数据
- blazor - 根据 URL 更改 Blazor 页面中的布局
- javascript - Javascript - 将字符串调整为标题大小写逻辑
- javascript - 反应useEffect返回参数没有依赖
- linux - 使用 mmap 读取文件并使用 NASM x86_64 在 mmaped 文件中执行系统调用
- android - 保护基于 ionic 的 android 应用程序 android manifest 文件权限
- java - 在 Java 中,您可以在 for 循环中更改/设置变量的值吗?
- java - 获取一个二维数组并搜索一个数字,然后输出一个布尔数组
- excel - Excel:使用字典值上的通配符在 VBA 字典中搜索匹配项
- c# - 在渲染算法中计算命中点的精度不够