2011-11-18 143 views
1

我想使用jquery得到<li>的id。我能够使用alert($(this).text())获得文本,但是当我尝试alert($(this).id())时,它表示undefined如何使用jquery获取html列表项的id?

<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帮我解决这个问题。提前致谢。

回答

10

您应该使用attr()功能要素获取属性:

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

jQuery对象没有一个叫id()方法这就是为什么你得到的结果为undefined

3

它实际上$(this).attr('id'),不$(this).id()

2

id是属性。您需要

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

检查的jsfiddle here

0

你可以使用jQuery 1.6 +,那么你应该使用这段代码。

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