Javascript 为元素内的复选框创建标签
我尝试动态地生成行,问题是当我使用javascript动态地添加带有标签的复选框时不起作用。但是,默认情况下,我用Html创建的一个可以正常工作 事实上,我希望我添加的图像(on.png/off.png)替换复选框。当我只使用html(复选框+标签)时,代码是有效的,但现在我只想使用Javascript创建元素,我可以随意更改标签,但当我单击它时它就不起作用了 这是我的全部代码: Main.htmlJavascript 为元素内的复选框创建标签,javascript,html,dom,checkbox,Javascript,Html,Dom,Checkbox,我尝试动态地生成行,问题是当我使用javascript动态地添加带有标签的复选框时不起作用。但是,默认情况下,我用Html创建的一个可以正常工作 事实上,我希望我添加的图像(on.png/off.png)替换复选框。当我只使用html(复选框+标签)时,代码是有效的,但现在我只想使用Javascript创建元素,我可以随意更改标签,但当我单击它时它就不起作用了 这是我的全部代码: Main.html <HTML> <HEAD> <TITLE> </
<HTML>
<HEAD>
<TITLE> </TITLE>
<link rel="stylesheet" type="text/css" href="style.css" />
<SCRIPT language="javascript">
function addRow(tableID) {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
var cell1 = row.insertCell(0);
var element1 = document.createElement("input");
element1.type = "checkbox";
element1.id = "id2" ;
cell1.appendChild(element1);
// Create label
var label = document.createElement("label");
label.for = "id2" ;
cell1.appendChild(label);
var cell2 = row.insertCell(1);
cell2.innerHTML = rowCount + 1;
var cell3 = row.insertCell(2);
var element2 = document.createElement("input");
element2.type = "text";
cell3.appendChild(element2);
}
function deleteRow(tableID) {
try {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
for(var i=0; i<rowCount; i++) {
var row = table.rows[i];
var chkbox = row.cells[0].childNodes[0];
if(null != chkbox && true == chkbox.checked) {
table.deleteRow(i);
rowCount--;
i--;
}
}
}catch(e) {
alert(e);
}
}
</SCRIPT>
</HEAD>
<BODY>
<INPUT type="button" value="Add Row" onclick="addRow('dataTable')" />
<INPUT type="button" value="Delete Row" onclick="deleteRow('dataTable')" />
<TABLE id="dataTable" width="350px" border="1">
<TR>
<TD><INPUT type="checkbox" name="chk" id="id1" /> <label for="id1" > </label> </TD>
<TD> 1 </TD>
<TD> <INPUT type="text" /> </TD>
</TR>
</TABLE>
</BODY>
</HTML>
请帮帮我。您的问题是第17行,
label.for=“id2”代码>应该是label.htmlFor=“id2”代码>更改此
label.for = "id2" ;
对此
label.htmlFor = "id2" ;
由于某些JavaScript实现不允许将关键字/保留字作为对象属性,因此必须为for
属性设置一个变通方法,因此他们选择htmlFor
.class
也出现了类似的情况,这就是为什么他们使用.className
你真的应该考虑使用像这样的模板库。这将使您的开发更容易,项目将更具可扩展性、可维护性等。我将尝试。谢谢你,伊萨格纳。
label.htmlFor = "id2" ;