哪个<li>元素被点击了?</li>

时间:2011-10-09 09:38:34

标签: javascript jquery

我有5个(可能更多)li元素。

<ul>
 <li>One</li>
 <li>Two</li>
 <li>Three</li>
 <li>Four</li>
 <li>Five</li>
</ul>

我想要点击哪些元素( 哪一行 )。如果随机用户点击两个,我想获得$("li:eq(1)")(按键入)。

我怎样才能得到这个结果?

8 个答案:

答案 0 :(得分:4)

您可以使用jQuery.index。像这样:

$('ul > li').click(function() {
   alert($(this).index($(this).parent('li'));
});

答案 1 :(得分:1)

$("#ulId li").click(function() {
   $(this).something(); //the clicked li is $(this), and you can invoke functions on it.
})

答案 2 :(得分:1)

您可以使用以下命令获取所点击项目的文本节点值:

$('li').click(function(){
   var clicked = $(this).text();

  alert(clicked+" was clicked");
});

答案 3 :(得分:1)

工作示例:http://jsfiddle.net/tbugV/1/

$("#mylist li").each(function(index)
                     {
                         $(this).data("row", index);
                     }).
                click(function() 
                      {
                        alert($(this).data("row"));   
                      });

答案 4 :(得分:1)

如果您为元素提供了诸如

之类的ID
<ul id="mylist">
 <li id="el_1">One</li>
 <li id="el_2">Two</li>
 <li id="el_3">Three</li>
 <li id="el_4">Four</li>
 <li id="el_5">Five</li>
</ul>

然后,您可以在$(this).attr(id)处理程序中使用click来确定所单击元素的ID。这也可以为你的元素提供非顺序的id,并且会从你获得的实际值中分离<li>中写的内容。 此外,您可以在id中编码多个值(例如el_5_3),这有时可能很有用。

$("#mylist li").click(function()
                      {
                      var id = $(this).attr("id").split("_");
                      alert("You clicked the element with id="+id[1]);    
                      });

工作示例: http://jsfiddle.net/jFrdp/

答案 5 :(得分:0)

 $('html').click(function() {
     var el = e.target;    
     alert(el);
 });

答案 6 :(得分:0)

由于人们只是不断发布代码而没有解释,我会尝试相反的方式......

在单击元素的范围内调用click事件处理程序,因此您可以使用this关键字来访问该元素。您可以使用$(this)来获取包含被点击元素的jQuery对象,以便您可以在其上使用jQuery方法。

示例:

$(document).ready(function(){

  $('ul li').click(function({
    var text = $(this).text();
    alert('You clicked on the item with the text "' + text + '"');
  }));

});

答案 7 :(得分:0)

$('li').click(function(){
alert($(this).html());
});

当用户点击一个按钮时,此代码会发出警告。