4

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?

Community
  • 1
  • 1
Connor Deckers
  • 2,447
  • 4
  • 26
  • 45

3 Answers3

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

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

Manuel Leduc
  • 1,849
  • 3
  • 23
  • 39
2

Try:

function getInfo(event)
{
    var id = $(event.target).attr('id');
    console.log(id);
}
Skylar Anderson
  • 5,643
  • 1
  • 25
  • 34
  • This doesn't work. Unless the `onclick` attribute is `getInfo(event)` (which the OP says he can't change it to), then `event` will be undefined here, like it is in his code. – gen_Eric Sep 26 '11 at 14:11
1

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

$(function(){
   $('a', 'div.menu-content').click(function(){
      console.log(this.id+'...');
   });
}):
gen_Eric
  • 223,194
  • 41
  • 299
  • 337