2017-08-29 141 views
-1

所以我陷入了這個棘手的局面。我有一個變量,目前的表格數據:如何獲取父元素的ID?

row += '<td>' + c + '<button class="btn btn-success" id="' + callId + ' " onclick="handleCall()">Call</button>' + '<button class="btn btn-danger" id="' + hangupId + ' " onclick="handleHangUp()">Hangup</button>' + '</td>' ; 

後面我會將它附加到我的表中。現在,當我點擊通話按鈕時,我想獲取按鈕的ID。我試過這種方式:

function handleClick() { 
console.log(this); 
} 

但它指的是窗口對象。任何人都可以向我展示實現目標的方式嗎?由於

+2

'onclick =「handleCall(this)」','''handleClickClick(element)' – CBroe

+0

順便說一句,這肯定是重複的。但我想這個答案比尋找一個愚蠢更簡單! – RobG

回答

7

簡單地傳遞元件ID作爲參數,以保持它的簡單,

變化,

onclick="handleCall()" 

到,

onclick="handleCall(this.id)" 

this參照於所討論的用戶按下該按鈕。

然後,

function handleClick(id) { 
    console.log(id); 
} 

最後,因爲它們是在長期運行的工作,利用addEventListener方法的疼痛不使用內聯事件處理程序。

+0

我不介意票反對,但請告訴我我做錯了什麼,值得稱讚的投票。 – Script47

-1

有兩種方法可以做到這一點,你可以做到這一點通過jQuery使用attr或者,如果你想留香草Javascript那麼你可以使用.id

對於jQuery請參閱以下代碼:

console.log(jQuery('element').attr('id')); 

對於Javascript請參閱以下代碼:

console.log(element.id); 
+0

這個問題與jQuery無關,無論如何,這是非常糟糕的代碼。您建議的查詢的答案將始終*爲「測試」 – Archer

+0

使用Javascript選項更新了我的答案。那麼我提供的jQuery代碼有什麼問題? –

+0

它基本上說「獲取具有此ID的元素的ID」。這與問題無關。香草JavaScript的答案也是錯誤的,與問題無關。它將檢索一個nodeList並嘗試獲取它的id。這對提問者完全沒有幫助。 – Archer

0
row += '<td>' + c + '<button class="btn btn-success" id="' + callId + ' " onclick="handleCall(this)">Call</button>' + '<button class="btn btn-danger" id="' + hangupId + ' " onclick="handleHangUp()">Hangup</button>' + '</td>' ; 

function handleClick(element) { 
console.log(element); 
//here you will have all element properties 
}