2012-02-06 52 views
1

我无法得到这个工作。将JavaScript直接放到onclick事件中可以正常工作,但它不是这种方式。Javascript onclick问题

的JavaScript

function checkid(objDivID) { 
    if(this.id == 'id1') { 
     alert('ID is Checked') 
    }; 
} 

HTML

<tr id='id". $row['id'] ."' class='rrtr' onclick=\"checkid(this.id);\"> 
    <td class='name'>". $row['name'] ."</td> 
    <td class='data'>". $row['TotalResp'] ."</td> 
    <td class='data'>". $row['StaffCount'] ."</td> 
    <td class='data'><b>". number_format($row['Perc'],0) ."</b></td> 
</tr> 

感谢,H.

+0

问题是什么?该函数不会触发? – Jivings 2012-02-06 13:56:36

+1

解决了 - 我在Java语句中使用this.id而不是objDivID。 – 2012-02-06 14:12:06

回答

3

你传递的功能this.id,但随后在功能您尝试引用再次。它不会工作。改用参数名称。

function checkid(objDivID){ 
    if(objDivID == 'id1'){alert('ID is Checked')}; 
} 

此外,在HTML中引用双引号的反斜杠可能不是真的存在,对吗?您正在将该HTML打印为我想要的字符串。

+1

DOH!什么是dofus! LMAO - 告诉你我看不到太妃糖!非常。 – 2012-02-06 14:00:36

1

您可以通过多种方式解决这个问题,一个是调用函数指定this

<tr id='id". $row['id'] ."' class='rrtr' onclick=\"checkid.call(this, this.id);\"> 

或者只是使用传入ID:

function checkid(objDivID){ 
    if(objDivID == 'id1'){alert('ID is Checked')}; 
} 
0

那是因为你在错误的范围内使用this。更改线路

if(this.id == 'id1'){alert('ID is Checked')}; 

if(objDivID == 'id1'){alert('ID is Checked')};