给定以下代码:
<!DOCTYPE html> <!-- HTML5 -->
<html>
<head>
<meta http-equiv="Expires" content="Fri, Jan 01 1900 00:00:00 GMT">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="content-language" content="en">
<title>Untitled</title>
<script type='text/javascript'>
function createTableRow() {
var tr = document.createElement("tr");
var strWork = "<tr onmouseover='this.style.cursor=\"pointer\";'";
strWork += " onmouseout='this.style.cursor=\"auto\";'";
strWork += " onclick='ShowClick(this);'";
strWork += " id='TestCell'><td>Test!</td></tr>";
alert(strWork);
tr.outerHTML = strWork;
return tr;
}
function BuildTable() {
var table = document.createElement("table");
table.appendChild(createTableRow());
return table;
}
function ShowClick(obj) {
alert(obj.id);
}
</script>
</head>
<body onload='alert(BuildTable().outerHTML);'>
</body>
</html>
第一个“警报”对话框显示了我希望形成的标记,但是,“onload=alert”行返回结果“<table><tr></tr></table>”。
我究竟做错了什么?为什么这些事件不绑定到 TR 标签?
另外,我想补充一点,我最初使用 javascript 分配了事件,即:
tr.onclick = function() { ShowClick(this); };
但是得到了完全相同的结果...
我真的不明白,我在任何地方都找不到关于这个问题的任何讨论......任何帮助将不胜感激!