tags:

views:

637

answers:

1
<script>
function Hello(){
    var caller =  arguments.callee.caller;
    alert( caller );
}
</script>

<input type="button" id="btnHello" value="Hello" onclick="Hello()" />

How to get the button id from the the Hello function above with out passing the any argument in the Hello function

+5  A: 

An event object is passed to the Hello function automatically. You need to receive it as an argument and then do some cross-platform work to grab the element. A JS framework will help you out here.

function Hello(e){
    var caller = e.target || e.srcElement;
    alert( caller );
}

EDIT
+1 Andrew's comment below. Use addEventListener and attachEvent for best practice.

steamer25
event object is passed only if it is used like btnid.onclick = function(e){ alert( e.target )}; But how to get the event object when we apply event as inline.
Jineesh
IIRC, you can get it by setting the `onlick` attribute to "Hello(event)".
Ben Blank
Attach events with unobtrusive JavaScript rather than using an inline event handler, then you can use the event object passed to event callbacks.
Andrew Noyes