Javascript 如何绑定多个复选框的单击事件处理程序?
如何添加复选框中当前选中的div的边框。作为基础,我使用了一个在线课程中的代码,该课程实际上具有非常相似的功能。不幸的是,更改后,它无法工作 HTMLJavascript 如何绑定多个复选框的单击事件处理程序?,javascript,html,events,Javascript,Html,Events,如何添加复选框中当前选中的div的边框。作为基础,我使用了一个在线课程中的代码,该课程实际上具有非常相似的功能。不幸的是,更改后,它无法工作 HTML <div id="checkbox"> <label> <input id="highlightall" type="checkbox"> Check all </label> </div> <div class="checkboxall"> <di
<div id="checkbox">
<label>
<input id="highlightall" type="checkbox"> Check all
</label>
</div>
<div class="checkboxall">
<div class="box">
<label>
<input class="highlight" type="checkbox"> Checkbox1
</label>
</div>
<div class="box">
<label>
<input class="highlight" type="checkbox"> Checkbox2
</label>
</div>
<div class="box">
<label>
<input class="highlight" type="checkbox"> Checkbox3
</label>
</div>
</div>
另外,这里是JSFIDLE链接:
谢谢你抽出时间
document.getElementsByClassName
返回一个节点列表
,您需要为每个节点绑定click事件处理程序
要设置复选框border
,需要使用outlineColor
和outlineStyle
属性
对于绑定事件
处理程序,必须使用For
循环,并为每个复选框
DOM元素附加一个事件处理程序
var复选框=document.getElementsByClassName(“突出显示”);
对于(var i=0;i全部工作。全部选中。然后单击
document.getElementById('highlightall')。onclick=function(){
var border=document.getElementsByClassName(“突出显示”);
对于(i=0;i
.checkboxall{
背景:#222;
填充:10px;
颜色:#fff;
}
全部检查
复选框1
复选框2
复选框3
注意:document.getElementsByClassName指的是一组元素
除了document.getElementsByCassName(“突出显示”)之外,您还可以使用document.getElementById(“highlightall”)
更改Javascript文件,如下所示
function preparePage() {
document.getElementById("highlightall").onclick = function() {
if (document.getElementById("highlightall").checked) {
// use CSS style to show it
document.getElementsByClassName("checkbox")[0].style.border = "thick solid #FFFFFF";
} else {
// hide the div
document.getElementsByClassName("checkbox")[0].style.border = "none";
}
}
// now hide it on the initial page load.
document.getElementsByClassName("checkbox")[0].style.border = "none";
}
window.onload = function() {
preparePage();
};
我想这可能对你有帮助
谢谢我在代码中完成了以下方法,它对我很有帮助
在选择一个复选框时,我预定义了一个类选择器名称responsed
,当选中该复选框时,它将被动态地添加到该复选框中,我还添加了一个更改
侦听器,以侦听我们的DOM更改并对其进行操作
因此,复选框周围会显示一个漂亮的边框
const form=document.getElementById('register');
常量输入=form.querySelector('input');
const ul=document.getElementById('invitedList');
表格.addEventListener('submit',(e)=>{
e、 预防默认值();
常量文本=input.value;
input.value='';
const li=document.createElement('li');
li.textContent=文本;
const label=document.createElement('label');
label.textContent='已确认';
const checkbox=document.createElement('input');
checkbox.type='checkbox';
label.appendChild(复选框);
li.儿童(标签);
ul.儿童(li);
});
ul.addEventListener(‘变更’,(e)=>{
const checkbox=event.target;
const checked=checkbox.checked;
const listItem=checkbox.parentNode.parentNode;
如果(选中){
listItem.className='已响应';
}否则{
listItem.className='';
}
});
/*已响应*/
.回答{
过渡:0.4s;
边框颜色:rgba(88183205.9);
}
.回应标签{
过渡:0.4s;
颜色:rgba(88183205,1);
}
冒险类游戏
演示应用程序
提交
受邀者
与getElementById
相反,getElementsByClassName
返回元素数组(因为多个元素可以具有相同的类)。
function preparePage() {
document.getElementById("highlightall").onclick = function() {
if (document.getElementById("highlightall").checked) {
// use CSS style to show it
document.getElementsByClassName("checkbox")[0].style.border = "thick solid #FFFFFF";
} else {
// hide the div
document.getElementsByClassName("checkbox")[0].style.border = "none";
}
}
// now hide it on the initial page load.
document.getElementsByClassName("checkbox")[0].style.border = "none";
}
window.onload = function() {
preparePage();
};