动态创建td更改onclick

时间:2014-04-14 22:22:45

标签: javascript html onclick dynamically-generated

我有一张动态td表,我想在点击时改变字母的重量。以下是我的编码,但在点击时会更改整个页面。请告诉我哪里弄错了。

function addHandler()
{
    var addH=document.getElementsByTagName('td');       
    for( var i=0;i < addH.length;i++)
    {
        if(addH[i].addEventListener)
        {
            addH[i].addEventListener('click',addBold,false);
        }
        else if(addH[i].attachEvent)
        {
            addH[i].attachEvent('onclick',addBold);
        }
    }
}

function addBold()
{   
    var add=document.getElementsByTagName('td');        
    for( var i=0;i < add.length;i++)
    {
        var weightVal=add[i].style.fontWeight;
        if(weightVal!=900)
        {           
            add[i].style.fontWeight="900";
        }
        else
        {
            add[i].style.fontWeight="100";
        }
    }           
}

1 个答案:

答案 0 :(得分:0)

你的addBold例程正在设置ALL td&#39; s。以下作品。我希望我能给你一个参考链接,但我不能。我自己想要那个链接。

[edit]这个页面就像我想你想要的那样。它对你有用吗?
&#34; e&#34;传递给事件处理程序。我希望我能说更多。
就像我说的那样,我正在寻找关于它是如何工作的参考。但确实如此。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Title</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<style type="text/css">
</style>
<script type="text/javascript">
function addHandler() {
  var addH=document.getElementsByTagName('td');       
  for( var i=0;i < addH.length;i++) {
    if(addH[i].addEventListener) {
      addH[i].addEventListener('click',addBold,false); }
    else if(addH[i].attachEvent) {
      addH[i].attachEvent('onclick',addBold); } }
  }
function addBold(e) {
  if (e.target.style.fontWeight != "900") {
    e.target.style.fontWeight = "900"; }
  else {
    e.target.style.fontWeight = "100"; }
  }
</script>
</head>
<body onload="addHandler();">
<div id="bodyid">
<table border="1">
<tr><td>One1</td><td>Two1</td></tr>
<tr><td>One2</td><td>Two2</td></tr>
</table>
</div><!-- bodyid -->
</body>
</html>