HTML";onclick";JavaScript中的事件(在表中)

HTML";onclick";JavaScript中的事件(在表中),javascript,html,html-table,onclick,document.write,Javascript,Html,Html Table,Onclick,Document.write,我正在尝试将一个用HTML编写的表转换为Javascript,因为我希望该表能够动态生成(#行)。我遇到的主要问题是,表格中的各个单元格都可以单击,并打开另一个html页面。遗憾的是,html“onclick”参数不适用于文档。请编写语句以下是html表格单元格的示例: <td id="r1c1" align="center" onclick="getTicket(1,'plan',1);"><script language="JavaScript">document.w

我正在尝试将一个用HTML编写的表转换为Javascript,因为我希望该表能够动态生成(#行)。我遇到的主要问题是,表格中的各个单元格都可以单击,并打开另一个html页面。遗憾的是,html“onclick”参数不适用于
文档。请编写
语句以下是html表格单元格的示例:

<td id="r1c1" align="center" onclick="getTicket(1,'plan',1);"><script language="JavaScript">document.write(getDate(1,"plan", "r1c1")); </script></td>
document.write(getDate(1,“计划”,“r1c1”);
这一行中的函数是预定义的,可以正常工作,所以我不打算发布这些函数,但是我们的想法是,函数getTicket(…)应该打开另一个html页面


我的问题是如何让onclick在JavaScript中工作。我可以使用document.write命令在Javascript中创建单元格,但不知道如何使这些单元格可以单击以运行函数getTicket(…)

您可以使用函数修改HTML中的属性


使用此函数,您可以生成单元格代码并手动定义属性。

您不应该使用
文档。write
要向页面添加元素,有javascript函数可用于此:

var myCell = document.createElement('td');
myCell.setAttribute('id', 'r1c1');
myCell.setAttribute('align', 'center');
myCell.onclick = function () {
    getTicket(1, 'plan', 1);
};

// myRow is the 'tr' you want this 'td' to be a child of.
myRow.appendChild(myCell);

看看它的实际应用:

至少可以说,你的Javascript编程风格很古老
document.write
是一个主要在几乎没有生成动态内容的常用方法时开发的函数

因此,您应该使用
document.createElement
等方法动态生成元素,将内容附加到那里,然后使用
appendChild
等现代方法将元素附加到DOM

然后,您可以使用比传统方式(如
onclick
,如
addEventListener
)更现代的方式来附加事件侦听器。下面是一个片段:

var td = document.createElement("td");
td.innerHTML = getDate(1, "plan", "r1c1");
td.addEventListener("click", function() {
    getTicket(1, 'plan', 1);
});
row.appendChild(td);
我假设
是您正在生成的表的行


不幸的是,IE你能试试下面的代码吗,如果这是可行的,那么让我知道我会给你一些更好的选择:-

<script>
   document.onload = function()
   {
       document.getElementById('r1c1').onclick = function()
       {
           getTicket(1,'plan',1);
       }
   }
</script>

document.onload=函数()
{
document.getElementById('r1c1')。onclick=function()
{
getTicket(1,“计划”,1);
}
}

请检查并让我知道。

不要使用
文档。编写
。使用或jQuery或类似工具。在哪个浏览器中不起作用?您的产品线在Safari、Chrome和Firefox中运行良好。没有测试IE…如前所述,最好使用
文档以外的其他内容。编写
。如果要生成属性,请仔细阅读我的答案。。。希望这有帮助!谢谢我知道这会起作用,但我的一个问题是,由于表是动态分配的,我无法控制元素的id,因为我不知道还有多少行。你还可以做一件事,保持每个id的类名相同,如'tdClass',参数相同,如“1,'plan',1”您可以将其设置为数据属性,如data first=“1”、data second=“plan”、data third=“1”,并在“tdClass”类上使用jquery单击,甚至可以获取数据,然后可以单击相应的事件。如果你愿意,我将为你编写代码:)–Pushkar刚才eOk感谢这项工作符合我的喜好(尽管让函数在for循环中工作是另一个问题,但我也设法解决了)。关于JavaScript,我似乎还有很多东西要学(尽管我仍然认为自己是初学者),别担心,JavaScript有很好的学习曲线。你将在一个月内自己发现:)
<script>
   document.onload = function()
   {
       document.getElementById('r1c1').onclick = function()
       {
           getTicket(1,'plan',1);
       }
   }
</script>