点击后,我需要能够从特定li
获取文字,代码如下:
<div>
<ul>
<li>list item 1</li>
<li>list item 2</li>
<li>
<ul>
<li>list item 3</li>
<li>list item 4</li>
<li>list item 5</li>
</ul>
</li>
<li>list item 6</li>
<li>
<ul>
<li>list item 7</li>
<li>list item 8</li>
<li>list item 9t</li>
</ul>
</li>
</ul>
</div>
在这种情况下,我需要通过索引获取“列表项5 ”。
编辑:
基本上,当点击<li>list item 5</li>
时,我希望获得此部分文本或值,当点击其他内容时 - 什么也不做。请注意,虽然菜单是分层的,但第5个元素表示第5个元素。仔细检查li
项目的文本以便理解。
答案 0 :(得分:8)
$('li').on('click',function(){
alert($(this).text());
});
<强> Working Example 强>
答案 1 :(得分:3)
好吧,eq
选择器似乎足以达到您的目的。
$("li:eq(5)").click(function(){
var text = $(this).text();
})
答案 2 :(得分:1)
你最好的解决方案是给那个项目一个id,或者至少给一个类,然后你可以做:
$("#myID").click(function() {
var text=$(this).text();
});
如果你不能这样做,那么你可以尝试使用各种导航选择器,可能像(未经测试):
$("div>ul>li:nth-child(3)>ul>li:nth-child(3)").click(...
但这是一个非常尴尬的方法,可能会破坏您向列表中添加更多项目的第二个方法。 (这里是fiddle - 只有在点击列表项5 时才会发出提醒
或者如果文本是静态的,您可以选择:
$("li:contains('list item 5')").click(...
如果该文本发生更改,或者其他节点包含相同的文本,则会再次中断。
答案 3 :(得分:0)
$('ul').on('click', 'li', function() {
console.log($(this).text());
});