2012-09-19 24 views
1

我試圖捕捉目標元素的ID時功能解僱,但this關鍵字返回undefined我試圖讓目標元素的ID時功能解僱,但`this`關鍵字返回`undefined`

--- HTML文件。 ---(我不能在onclick函數中添加任何參數) 我在頁面中有很多<a>標籤,並想識別女士<a>標籤被點擊。

<a href="#some_links" id="element_id" onclick = "object.pageName.functionName('parms1', 'parms2', 'parms3')">Get this object</a> 

<a href="#some_links" id="second_element_id" onclick = "object.pageName.functionName('parms1', 'parms2', 'parms3')">Get this object</a> 

--- .js文件---

object.pageName.functionName = function(a, b, c){ 
    alert(this); // returns 'undefined' 
} 
+0

只是在參數路徑這個http://stackoverflow.com/questions/4825295/javascript-onclick-get-the-id-of-the-button-clicked – webdeveloper

回答

3

這是這裏的StackOverflow一個非常普遍的問題。

總之,你的onclick被包裹在一個匿名函數(裏面確實有訪問this,你必須傳遞下去吧。

--- HTML文件---

<a href="#some_links" id="element_id" onclick = "object.pageName.functionName(this, 'parms1', 'parms2', 'parms3')">Get this object</a> 

--- .js文件---

object.pageName.functionName = function(self, a, b, c){ 
    alert(self); // returns 'undefined' 
} 

這裏是另一種方式:

object.pageName.functionName = function(a, b, c){ 
    // Downside of this way, you can only use this function for one element. 
    self = document.getElementById("element_id"); 
    alert(self); 
} 
+0

我不能夠添加'這個'參數在onclick功能。 –

+0

問題 - 我很好奇什麼樣的工作環境要求你做一份工作,但並沒有給你做這件事的權力。答案更新,順便說一句。 –

+0

這隻適用於一個錨點,但如果頁面中有許多標籤並且需要識別女巫標籤被點擊時該怎麼辦。 –

相關問題