javascript - 如何根据许多其他元素隐藏一个元素
问题描述
所以我目前正在尝试隐藏基于 html 中“真”或“假”元素的按钮。但是我总共显示了 5 个 CSS 块。每个都有这些按钮。它只隐藏第一个块上的按钮。我总共有 5 个块。
if ($.attr("data-ischar") === "true") {
$("#join").css({"display":"block"});
$("#delete").css({"display":"block"});
$("#create").css({"display":"none"});
} else {
$("#join").css({"display":"none"});
$("#delete").css({"display":"none"});
$("#create").css({"display":"block"});
};
是我的代码,
data-ischar
是真值还是假值。
我有一个 id 叫做data-charid
那个 = 一直到 5。只有第一个隐藏了按钮。
有什么建议么?抱歉,如果不清楚,js 新手。
解决方案
外观样式用css,状态管理用js。
p = document.querySelector("p")
cts = document.querySelector(".controls")
ctr = document.querySelector("#controller")
ctr.addEventListener('click', e => {
status = p.dataset.ischar === 'true' ? 'false' : 'true'
// JS control the data attribute
p.dataset.ischar = status
p.innerText = `Char status: ${status}`
// we toggle the class based on attribute change event.
cts.classList.toggle('hide')
})
#controls button {
display: block;
}
.controls.hide button {
display: none;
}
<div>
<button id="controller">Control the char status</button>
<div>
<p data-ischar="true">Char status: true</p>
<div class="controls" class="hide">
<button>first Join</button>
<button>Create</button>
<button>Delete</button>
</div>
<div class="controls" class="hide">
<button>Second Join</button>
<button>Create</button>
<button>Delete</button>
</div>
<div class="controls" class="hide">
<button>third Join</button>
<button>Create</button>
<button>Delete</button>
</div>
<div class="controls" class="hide">
<button>Join</button>
<button>Create</button>
<button>Delete</button>
</div>
<div class="controls" class="hide">
<button>Join</button>
<button>Create</button>
<button>Delete</button>
</div>
<div class="controls" class="hide">
<button>Join</button>
<button>Create</button>
<button>Delete</button>
</div>
<div class="controls" class="hide">
<button>Join</button>
<button>Create</button>
<button>Delete</button>
</div>
<div class="controls" class="hide">
<button>Join</button>
<button>Create</button>
<button>Delete</button>
</div>
<div class="controls" class="hide">
<button>Join</button>
<button>Create</button>
<button>Delete</button>
</div>
推荐阅读
- dart - Flutter StreamSubscription cancel() 在无状态小部件中未取消
- css - Shrinkwrap 一个水平环绕的可变高度自动网格
- vba - Documents.Open 使用 FileSystemObject 返回“5174 - 找不到文件”,但并非总是如此
- git - 如何在服务器上设置 git 存储库,并允许多个用户执行 git pull,而不是由一个用户拥有?
- python - 使用多个键对列表进行排序
- python-3.x - 无法使用目录变量发送到 shell 文件来执行 python 脚本
- android - UnsatisfiedLinkError: No implementation found for byte[] dji.midware.natives.SDKRelativeJNI.native_getXXX (...)
- c# - 在 C# 中,请求语音识别 Xamarin Android 的权限时出现错误
- c# - 从本机 C++ 应用程序调用 WPF 会导致异步调用失去上下文
- ember.js - EmberJS hasMany 不获取关系