2

我正在尝试从 javascript 中的函数更改 td 的“onclick”值。我已经尝试了所有我能想到的东西,我已经在互联网上搜索了它但没有任何效果,除了下面的这段代码,但它的问题是它正在执行我想要的 onclick 值而不是改变它.

<div align="center" id="bodyC">
<table width="800" height="410">
<td class="bodyCC">
    <table id="MYtable" class="MYtable" border="0" width="100%" height="100%" cellpadding="50">
    <td id="one" class="one" onclick=""></td>
    <td id="two" class="two" onclick=""></td>
    <td id="three" class="three" onclick=""></td>
    </table>
</td>
</table>
</div>


function download()
{
<!-- this function is called when the "Download" button on the website's menu is pressed, and is soppused to change the "body" table so when the sells are clicked an alert will pop.-->
document.getElementById('one').onclick=alert("A..!");
document.getElementById('two').onclick=alert("B..!");
document.getElementById('three').onclick=alert("C..!");
}

有什么帮助吗?

ps没有错误。

4

1 回答 1

8

当你写

document.getElementById('one').onclick=alert("A..!");

您将onclick返回的值设置为处理程序alert("A..!"):它是undefined. 所以这行不通。

你需要的是一个函数定义:

document.getElementById('one').onclick = function() {alert("A..!");};

或者,您可以:

function myfunc() {
    alert("A..!");
} 
document.getElementById('one').onclick = myfunc;

但是编写匿名函数定义很好,因为它将代码保存在使用它的地方,因此通常更干净。

您还需要在脚本元素中包含 javascript:

<script>
    document.getElementById('one').onclick = function() {alert("A..!");};
    document.getElementById('two').onclick = function() {alert("B..!");};
    document.getElementById('three').onclick = function() {alert("C..!");};
</script>

这是您页面的完整、固定、经过测试的版本:

<div align="center" id="bodyC">
<table width="800" height="100"><tr>
<td class="bodyCC">
    <table id="MYtable" class="MYtable" border="0" width="100%" cellpadding="50"><tr>
    <td id="one" class="one" onclick="">ONE</td>
    <td id="two" class="two" onclick="">TWO</td>
        <td id="three" class="three" onclick="">THREE</td></tr>
    </table>
    </td></tr>
</table>
    <span onclick="download();">CLICK HERE</span>
</div>
<script>
// this function is called when the "Download" button on the website's menu
// is pressed, and is soppused to change the "body" table so when the sells
// are clicked an alert will pop.
function download() {
   document.getElementById('one').onclick=function(){alert("A..!");};
   document.getElementById('two').onclick=function(){alert("B..!");};
   document.getElementById('three').onclick=function(){alert("C..!");};
} 
</script>​​​​​​​​​​

(我还修复了 HTML 注释和缺失的 tr)

您可以在此处单击测试:单击“单击此处”以激活单击其他三个部分(一、二、三)的功能。

于 2012-07-02T10:59:48.810 回答