0

使用 JQuery 如何检测对某个列表的任何 html 列表元素的点击并获取 li 元素中的文本?

例如,我有以下列表:

<ul id="mylist">
  <li>one</li>
  <li>two</li>
  <li>three</li>        
</ul>

例如,如果用户单击 li 元素之一,则 JQuery 应该检测到这一点并获取字符串"one"

我为自己解决问题所做的一切

我正在考虑给每个 li 元素一个以相同开头的 id,例如:

<li id='li-1'>one</li>
<li id='li-2'>two</li>
<li id='li-3'>three</li>

然后执行以下操作(CoffeScript):

$('[id^="li-"]').click ->
  console.log $(this).html # should log one when user clicks on li-1 etc 

但这似乎真的很不优雅和凌乱。请有人帮助我并教我一种更好的方法来做到这一点(并且一种有效的方法,因为我的例子不起作用:()

4

1 回答 1

3

这行得通吗?(带演示

$('#mylist li').on('click', function() {
    console.log($(this).html());
});

在这里,事件作为“mylist”的 id 附加到其中的所有li元素ul,因此这不会li在您的 dom 中的任何其他元素上触发。因为事件侦听器li直接附加到,调用$(this)会为您提供该元素。

或者在 CoffeeScript 中(和一个演示

$('#mylist li').click ->
  console.log $(this).html()
  false
于 2013-02-23T01:02:01.173 回答