2012-11-28 223 views
2

我正在爲要刪除的表中的每個動態按鈕。我使按鈕ID有行的關鍵,所以我可以點擊查詢它知道哪一個要刪除。由於我將所有按鈕分配給相同的功能,我需要將點擊的按鈕傳遞給事件處理程序,以便我可以從事件處理程序中查詢ID。javascript動態按鈕單擊事件

當硬編碼時,我只是將'this'傳遞給事件處理函數。如何在製作動態按鈕時執行此操作?

現在我有:

{ 
var cell0 = row.insertCell(0); 
var btn = document.createElement("input"); 
btn.type = "button"; 
btn.id = "btnHistorySelect_" + roundHdr[i].id;    // append the id to the name so we can get it when select button is clicked so we know what round to select as current 
btn.value = "Set Current"; 
btn.onclick = btnHistorySelect; 
cell0.appendChild(btn); 
} 


function btnHistorySelect() { 
} 

的事件處理函數被調用,但我不知道什麼鍵所作的點擊。

回答

3

您可以使用this.idevent.target.id屬性來獲取啓動事件的按鈕的ID。

function btnHistorySelect(event) { 

    var id = this.id; 

     or 
    // var elem = event.target; 
    // var id = elem.id 

} 

因爲要分配的功能參考,在函數內部對應於當前元素是問題。

+0

這很容易吧:)謝謝。 – user441521

+0

很高興有幫助:) –

2

你不需要知道或分配一個ID,如果您使用此

3
function btnHistorySelect(event) { 
    alert(event.target); // Will alert the actual element clicked. 
} 
2

HTML輸入按鈕元素可用內btnHistorySelect功能通過this變量。