【发布时间】:2021-10-01 16:41:56
【问题描述】:
所以我从复选框点击事件中有以下目标
1] 在指定的 div 中创建一个 id = 'id-of-checkbox'+'some-character-here' 的按钮
2]单击该特定按钮将删除该按钮以及与之相关的复选框
3] 如果用户想通过取消选中复选框来删除指定 div 中的按钮,则应该这样做
4] 如果用户再次选中复选框按钮,则应在指定的 div 中创建
现在我已经实现了前 3 个目标,但我对第 4 个目标有疑问,即
如果我在取消选中后再次单击复选框,则不会创建按钮并且控制台不会
返回与之相关的任何错误..请帮助
这是我的 HTML 代码
<div id="filterDropArea container">
<input type="checkbox" name="priceFilter" id="priceFilter" class="btn" onclick="updateValue(this.id,this.name)">
Price Filter
</div>
<div id="DropArea">
</div>
这是我的 Javascript 代码
var objTo = document.getElementById('DropArea');
var checked = ""
function updateValue(id,name)
{
if(document.getElementById(id).checked)
{
checked='yes'
}
else if(!document.getElementById(id).checked)
{
checked='no'
}
if(checked=='yes')
{
addButton(id,name);
}
else if(checked=='no')
{
removeButton(id,name);
}
}
function addButton(id,name)
{
var nameOfButton = name+'X';
var idofButton = id+'11';
var btn = document.createElement("BUTTON");
btn.innerHTML=nameOfButton;
btn.setAttribute("class","btnCancel");
btn.setAttribute("id",idofButton);
btn.setAttribute("onclick","someMsg(this.id)")
objTo.appendChild(btn);
}
function removeButton(id,name)
{
var idofButton = id+'11'
if(document.getElementById('DropArea').contains(document.getElementById(idofButton)))
{
document.getElementById('DropArea').remove(document.getElementById(idofButton));
console.log('Button Removed');
}
}
function someMsg(id)
{
var name = id.substring(0,id.length-2);
document.getElementById(id).remove();
document.getElementById(name).checked=false;
console.log('Deleted');
}
【问题讨论】:
标签: javascript html checkbox