我有以下 Javascript,在 id="freq-table" 的表格单元格中单击鼠标即可使用<input>
单元格的值填充 id="searchTerm(x)" 的连续表单字段。它在<body>
标签中被引用为:
<body onload="populateFields()>
并<table>
标记为:
<table onclick="populateFields()>
var index=0;
function populateFields(){
var ft_id = document.getElementById("freq-table");
var alltds = ft_id.getElementsByTagName("td");
for (var i in alltds) {
alltds[i].onclick = function () {
if(index==0) {
searchTerm1.value = this.innerHTML;
} else {
setThis(this.innerHTML);
}
}
}
if (index<2) {
index++;
} else {
index = 1;
}
}
function setThis(value) {
document.getElementById("searchTerm"+index).value = value;
}
当试图通过传递元素 id(如下)使函数更通用时,现在需要第二次鼠标单击来开始填充字段。
<table onclick="populateFields(this)" id="freq-table">
function populateFields(element){
var alltds = element.getElementsByTagName("td");
改变行为的修订是什么?我只是错误地传递了 id 吗?还是修改后的函数现在期望在<body>
标签中将变量传递给它?这很令人困惑,因为:如果我错误地传递了 id,为什么该函数会在第一次鼠标单击后连续工作?请问有什么办法解决这个问题?