2017-08-29 12 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>' ; 

後部を私のテーブルに追加します。今、Callボタンをクリックすると、ボタンのIdを取得したいと思います。私はこのように試しました:

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

しかし、それはウィンドウオブジェクトを指しています。誰も私の目標を達成する方法を示すことができますか?おかげ

+2

'onclick =" handleCall(this) "'、 'function handleClick(element)' – CBroe

+0

これは確かに重複しています。しかし、私はそれが愚か者を探すよりも簡単だと思います! – RobG

答えて

7

は単に、それをシンプルに保つために、パラメータとして

変更を要素のIDを渡します、

onclick="handleCall()" 
ユーザーが押している問題で、ボタンを参照

に、

onclick="handleCall(this.id)" 

this。彼らは、長い目で見ればと連携addEventListener方法を利用する痛みのあるとして、その後

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

は最後に、インラインのイベントハンドラを使用しないでください。

+0

私は下投票を気にしませんが、私が下投票したと言って間違ったことを教えてください。 – Script47

-1

あなたがこれを行うことができます2つの方法がありますが、あなたはattrを使用してjQuery経由でそれを行うことができますかあなたはバニラJavascript滞在したいしている場合、あなたは.idを使用することができます。 jQueryについては

以下のコードを参照してください:Javascriptについては

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

を以下のコードを参照してください。

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 
}