1

I wanna get the id of <li> using jquery. I was able to get the text using alert($(this).text()) but when I tried alert($(this).id()) it says undefined.

<html>
<head>
<style type="text/css">
 ul {
  list-style-type: none;
 }
</style>
<script type="text/javascript" src="jquery1.6.4min.js"></script>
 <script type="text/javascript" > 
  $(document).ready(function() {
   $('#list li').click(function() {
    alert($(this).id());
    alert($(this).text());
   });
  });
</script>
</head>
<body>
 <ul id="list">
  <li id="l1">Value 1</li>
  <li id="l2">Value 2</li>
  <li id="l3">Value 3</li>
  <li id="l4">Value 4</li>
  <li id="l5">Value 5</li>
  <li id="l6">Value 6</li>
  <li id="l7">Value 7</li>
  <li id="l8">Value 8</li>
  <li id="l9">Value 9</li>
  <li id="l10">Value 10</li>
  <li id="l11">Value 11</li>
  <li id="l12">Value 12</li>
 </ul>
</body>
</html>

Plase help me with this. Thanks in advance.

5 Answers 5

12

You should get attributes from elements using the attr() function:

alert($(this).attr('id'));

The jQuery object doesn't have a method called id() which is why you're getting the result as undefined.

Sign up to request clarification or add additional context in comments.

Comments

3

it's actually $(this).attr('id'), not $(this).id().

Comments

3

id is an attribute. You need

alert($(this).attr('id'))

Comments

1
 $(document).ready(function() {
   $('#list li').click(function() {
    alert($(this).attr("id"));
    alert($(this).text());
   });
  });

Check jsfiddle here.

Comments

0

You can use jQuery 1.6 + then you should use this code.

var id = $(this).prop('id');

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.