尝试通过单击单元格来调用函数。与alert(this.innertext)
一起使用时,window.close()
和onClick
可以独立工作。但是,当我插入自己的功能时,它不起作用。检查时控制台没有错误。
mywin.document.write("<td onClick='test2()'>" + this.tArray[i] + "</td>");
function test2() {
alert("hi");
}
答案 0 :(得分:0)
如果mywin
是一个窗口,那么您需要将test2
放入该窗口的全局范围内,以便元素可以看到它。添加:
myWin.test2 = () => alert('hi');
但是使用适当的DOM方法插入元素并在Javascript本身而不是HTML中附加侦听器会更加优雅和易于管理。
答案 1 :(得分:0)
假设mywin
是窗口对象(这是不必要的)。
您需要添加整个表格结构。
var mywin = window;
mywin.document.write("<table><tbody><tr><td onClick='test2()'>Hello!</td></tr></tbody></table>");
function test2(){ alert("hi");}
&#13;
<强>建议:强>
使用函数addEventListener
:
此方法使用函数querySelectorAll
来循环并绑定事件click
。
document.write("<table><tbody><tr><td class='clickable'>Ele</td></tr><tr><td class='clickable'>From SO</td></tr></tbody></table>");
Array.prototype.forEach.call(document.querySelectorAll('.clickable'), function(td) {
td.addEventListener('click', test2);
});
function test2(){ alert("hi");}
&#13;
答案 2 :(得分:0)
您可以通过创建元素并使用匿名函数创建onclick来实现此目的:
(将yourTableRow替换为引用表中行的对象)
var cell = document.createElement("td");
cell.onclick = function (item) {
return function () {
test2(item);
}
}(this.tArray[i]);
yourTableRow.appendChild(cell);
function test2(value) {
console.log(value);
}