caizhsp
2021-05-14 17:19
采纳率: 33.3%
浏览 29

关于js原生清空input无效的问题

清空输入框时,我这个写了 empValue = ''; 可是依旧没反应?包括下面的都没有用,代码也能运行那里,但是就是不生效。有人知道是为什么吗?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>

<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<title>添加删除记录练习</title>
	<link rel="stylesheet" type="text/css" href="css/css.css" />
</head>

<body>

	<table id="employeeTable">
		<tr>
			<th>Name</th>
			<th>Email</th>
			<th>Salary</th>
			<th>&nbsp;</th>
		</tr>
		<tr>
			<td>Tom</td>
			<td>tom@tom.com</td>
			<td>5000</td>
			<td><a href="#">Delete</a></td>
		</tr>
		<tr>
			<td>Jerry</td>
			<td>jerry@sohu.com</td>
			<td>8000</td>
			<td><a href="#">Delete</a></td>
		</tr>
		<tr>
			<td>Bob</td>
			<td>bob@tom.com</td>
			<td>10000</td>
			<td><a href="#">Delete</a></td>
		</tr>
	</table>

	<div id="formDiv">

		<h4>添加新员工</h4>

		<table>
			<tr>
				<td class="word">name: </td>
				<td class="inp">
					<input type="text" name="empName" id="empName" />
				</td>
			</tr>
			<tr>
				<td class="word">email: </td>
				<td class="inp">
					<input type="text" name="email" id="email" />
				</td>
			</tr>
			<tr>
				<td class="word">salary: </td>
				<td class="inp">
					<input type="text" name="salary" id="salary" />
				</td>
			</tr>
			<tr>
				<td colspan="2" align="center">
					<button id="addEmpButton" value="abc">
						Submit
					</button>
				</td>
			</tr>
		</table>

	</div>

	<script type="text/javascript">
		/*
		 功能说明:
			 1. 点击'Submit', 根据输入的信息在表单中生成一行员工信息
			 2. 点击Delete链接, 提示删除当前行信息, 点击确定后删除信息
		 技术要点:
			 1. DOM查询
			 2. 绑定事件监听
			 3. DOM增删改
			 5. 取消事件的默认行为
		 */

		window.onload = function () {
			//  为submit设置单击响应函数
			var addEmpButton = document.getElementById('addEmpButton');
			addEmpButton.onclick = function () {

				// 获取输入框
				var empName = document.getElementById('empName');
				var email = document.getElementById('email');
				var salary = document.getElementById('salary');

				var tbody = document.getElementsByTagName('tbody')[0];

				// 创建节点
				var tr = document.createElement('tr');
				tbody.appendChild(tr);

				// 获取键入输入框的值
				var empValue = empName.value;
				var emailValue = email.value;
				var salaryValue = salary.value;

				// 创建th
				var empTd = document.createElement('td');
				var emailTd = document.createElement('td');
				var salaryTd = document.createElement('td');

				// 创建超链接,并设置href使其具有链接的能力
				var aTd = document.createElement('td');
				var a = document.createElement('a');
				a.setAttribute('href', '#');
				a.onclick = deleteN;

				// 创建对应的文本节点
				// 获取的数据不能直接添加到td中,必须要创建一个文本节点,放入其中才可以
				var empText = document.createTextNode(empValue);
				var emailText = document.createTextNode(emailValue);
				var salaryText = document.createTextNode(salaryValue);

				// 将获取到的value值添加到对应的td中
				empTd.appendChild(empText);
				emailTd.appendChild(emailText);
				salaryTd.appendChild(salaryText);
				aTd.appendChild(a);

				var aText = document.createTextNode('Delete');
				a.appendChild(aText);

				// 将td添加到tr中
				tr.appendChild(empTd);
				tr.appendChild(emailTd);
				tr.appendChild(salaryTd);
				tr.appendChild(aTd);

				// 添加完成之后清除输入框
				empValue = '';
				empValue = '';
				salaryValue = '';

			}


			// 单点删除
			var allA = document.getElementsByTagName('a');
			for (var i = 0; i < allA.length; i++) {
				allA[i].onclick = deleteN;
			}
		}

		function deleteN() {
			// console.log(this);
			var name = this.parentNode.parentNode.firstElementChild.innerText;
			// console.log(this.parentNode.parentNode.parentNode);

			if (confirm('你确定要删除' + name + '吗')) {
				this.parentNode.parentNode.parentNode.removeChild(this.parentNode.parentNode.parentNode.lastElementChild);
			} else {
				return false;
			}
		}

	</script>
</body>

</html>
  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

3条回答 默认 最新

相关推荐 更多相似问题