无法使用JavaScript删除文本框
我面临使用js删除文本框的问题。 我正在使用下面提到的代码
<html>
<head>
<script language=javascript>
function addElement() {
var ni = document.getElementById('myDiv');
var numi = document.getElementById('theValue');
var num = (document.getElementById('theValue').value -1 + 2);
numi.value = num;
var newdiv = document.createElement('div');
var divIdName = 'my'+num+'Div';
newdiv.setAttribute('id',divIdName);
newdiv.innerHTML = '<input type=text id=' + num + ' value=' + num + '><a href="javascript:remove('+divIdName+')">Remove</a>';
ni.appendChild(newdiv);
}
function remove(dId) {
var ni = document.getElementById('myDiv');
ni.removeChild(dId);
}
</script>
</head>
<body>
<input type="hidden" value="0" id="theValue" />
<p><a href="javascript:addElement()" >Add TextBox</a></p>
<div id="myDiv"></div>
</body>
</html>
此代码工作正常,没有html头文件!DOCTYPE html PUBLIC“ - // W3C // DTD XHTML 1.0 Transitional // EN”“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd “>如果我将这个头添加到代码删除链接不起作用。 该代码有什么问题。
方法.removeChild
仅适用于父节点及其直接子节点。
相反,您可以使用更通用的删除功能,以自动选择父级。
function remove(dId){
var rem = document.getElementById(dId);
rem.parentNode.removeChild(rem);
}
编辑:
另一个问题是remove anchor的innerHTML。 它需要发送一个字符串,并试图发送一个变量。
newdiv.innerHTML = '<input type=text id=' + num + ' value=' + num + '><a href="javascript:test(''+divIdName+'')">Remove</a>';
现有的代码在IE8和Chrome中工作,但在FF中失败。 这个函数在所有这三个函数中都有效,但是为什么......我在查看萤火虫时显示了相同的DOM结构,或许其他人可以澄清?
链接地址: http://www.djcxy.com/p/89025.html