<td id="td_1"><a id="a_1" href="#" onclick="alert(this.parentElement.id)">nba</a></td> 
<td id="td_2"><a id="a_2" href="#" onclick="alert(this.id)">nba</a></td> 
如果onclick里用alert(this.parentElement.id)是正常的,但是如果吧alert换成自己定义的函数比如
onclick="fun1(this.parentElement.id)"
就会报this.parentElement.id 为空或不是对象
this.id会报"null"为空或不是对象求解

解决方案 »

  1.   

    这样呢<table><tr>
    <td id="td_1"><a id="a_1" href="#" onclick="alert(this.parentElement.id)">nba</a></td>
    <td id="td_2"><a id="a_2" href="#" onclick="alert(this.id)">nba</a></td>
    </tr></table>
      

  2.   


    我只是截取了一段,table是有的,一样不行
      

  3.   

    我试了一下,如果自己定义的函数fun1是定义在页面中的话就没有问题,如果是链接的.js就会报错.但是外联的fun1如果这样调用:fun1('td_1')就可以!这是什么原因呢?
      

  4.   

    楼主说的是在外部JS文件中使用fun1(this.parentElement.id)吧,
    这肯定不行了。
    这里的this指向变了
    fun1('td_1')就可以!
    这里参数是一个对象,当然就可以了。