2012-02-06 50 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')};