Patch
Patch

Reputation: 2507

Get information of element that called function with jQuery

I was wondering how I'd go about finding with jQuery, the element id that called an onClick method? my code is:

JS

function getInfo(event)
{
    console.log(event.target.id + " ... ");
}

HTML

<div class="menu-content" id="thisismyid">
    This is some placeholder text.<br>
    <a onClick="getInfo()" id="thisisthelinksid">Click on me</a>
</div>

<div class="menu-content" id="thisismysecondid">
    This is some more placeholder text.<br>
    <a onClick="getInfo()" id="thisistheotherlinksid">Click on me</a>
</div>

I can't put anything inside the parentheses of the function, because I want a function passed to it later, I just want to be able to tell which called this function.

I know this has been asked many times, and a lot of the questions have answers, but I have read through a lot of them and none have helped me.

Thanks guys

-EDIT-

In regards to the answers below at time of this edit, I cannot use the jQuery method like:

$("div.menu-content a").click(function() {
    some content here..
});

because I need it to only be run on certain links being clicked, not all of them. Does that help clarify?

Upvotes: 4

Views: 13588

Answers (3)

gen_Eric
gen_Eric

Reputation: 227230

Don't use the onclick attributes, use event handlers instead.

$(function(){
   $('a', 'div.menu-content').click(function(){
      console.log(this.id+'...');
   });
}):

Upvotes: 1

Manuel Leduc
Manuel Leduc

Reputation: 1919

$("div.menu-content a").click(function() {
    var $elemId = $(this).attr("id");
    console.log($elemId + " .... ");
);

Is a much more "jQuery style" solution to do it.

Upvotes: 5

Skylar Anderson
Skylar Anderson

Reputation: 5703

Try:

function getInfo(event)
{
    var id = $(event.target).attr('id');
    console.log(id);
}

Upvotes: 2

Related Questions