如何解决更改输入元素外的类
我有一个带有复选框的输入元素:
<input type="checkbox" id="ID1" name="ID1" checked>
在其他地方(在输入字段之外),我想要一个文本,它会根据 ID1 的输入元素的检查状态改变其外观。
类似于:
<span for id='ID1' class='Class1'>TEST</span>
如何获得文本和输入字段状态之间的依赖关系,以及如何通过选中和取消选中复选框将 Class1 更改为 Class2?该类更改文本的背景颜色。我知道如何在同一个元素中做到这一点。但是有两个不同的元素?或者由于“for”语句,是否可以通过输入元素的 ID 访问该类?我正在使用 JavaScript。
感谢您的帮助!
解决方法
将属性添加到具有相关跨度 ID 的复选框。
document.querySelector("#ID1").addEventListener("click",function() {
let rel = document.getElementById(this.getAttribute("rel"));
if (rel) {
if (this.checked) {
rel.classList.add("Class1");
rel.classList.remove("Class2");
} else {
rel.classList.add("Class2");
rel.classList.remove("Class1");
}
}
});
.Class1 {
background-color: red;
}
.Class2 {
background-color: blue;
}
<input type="checkbox" id="ID1" name="ID1" checked rel="span1">
<span id="span1" class='Class1'>TEST</span>
第一:你不能/不应该有两个具有相同 ID 的元素
const checkbox = document.getElementById("ID1");
const span = document.getElementById("SpanID1");
checkbox.addEventListener('change',function() {
if (this.checked) {
span.innerHtml= 'TEST Checked'
} else {
span.innerHtml= 'TEST Unchecked'
}
});
,
如果您需要 CSS 解决方案,您可以定位输入框并使用 :checked
选择器后跟 +
然后是相邻元素。
CSS: element+element [div + p] 选择紧跟在 <p>
元素之后的第一个 <div>
元素
.Class1 {
background-color: yellow
}
#ID1:checked + .Class1 {
background-color: skyblue
}
<input type="checkbox" id="ID1" name="ID1" checked>
<span for id='ID1' class='Class1'>TEST</span>
查看 here 以了解有关不同 CSS 选择器的更多信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。