点击添加按钮追加元素,咸鱼的checkbox勾选状态没了。 怎么才能追加元素后勾选状态还在。
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus®"> <meta name="Author" content=""> <meta name="Keywords" content=""> <meta name="Description" content=""> <title>Document</title> <script> function load() { var boxs = document.querySelectorAll("#div [type=checkbox]"); for ( var i = 0 ; i < boxs.length ; i++) { boxs[i].checked = true; } } function add() { var html = document.getElementById("div").innerHTML; var addHTML = '<input type="checkbox" name="fish">死鱼'; document.getElementById("div").innerHTML = html + addHTML; } </script> </head> <body onload="load()"> <div id="div"> <input type="checkbox" name="fish">咸鱼 </div> <input type="button" value="添加" onclick="add()"/> </body> </html>
你用的是innerHTML方法,innerHTML首先会将你元素内原有的内容删掉,然后再将写入,也就是说你看到的内容都是后来生成的,当然没有选中状态。你可以试着用append来添加:
var val=1;//input的value值
function add()
{
var input = document.createElement('input');
input.setAttribute('type', 'checkbox');
input.setAttribute('name', 'fish');
input.setAttribute('value', val);
document.getElementById('div').appendChild(input);
document.getElementById('div').append('死鱼');
val++;
}
把add函数改成上面这个就可以了,亲测没问题.另外input得有value值,
使用setAttribute,这么改简单些。修改load()方法
function load() { var boxs = document.querySelectorAll("#div [type=checkbox]"); for ( var i = 0 ; i < boxs.length ; i++) { //boxs[i].checked = true; boxs[i].setAttribute("checked",true); } }
你这是重新改造了一个checkbox,当然是没有勾选的呢