Jquery:从多个同名类中选择一个类?

Jquery:从多个同名类中选择一个类?,jquery,jquery-selectors,Jquery,Jquery Selectors,我需要从我以列表格式单击的父元素中选择一个类。同时防止显示具有相同类名的其他类 例如: $('ul').click(function() { $('li').next(".info").css({ "display" : "block" }); }); 而我将.info设置为显示:无 我的html代码是: <ul> <li><span>Guy</span></li> <li class="info">

我需要从我以列表格式单击的父元素中选择一个类。同时防止显示具有相同类名的其他类

例如:

$('ul').click(function() {
    $('li').next(".info").css({ "display" : "block" });
});
而我将
.info
设置为
显示:无

我的html代码是:

<ul>
    <li><span>Guy</span></li>
    <li class="info">
        <p>This should pop up when I click on the "Guy" span.</p>
    </li>
</ul>
  • 家伙
  • 当我单击“Guy”跨度时,应该会弹出此窗口

尽管如此,我似乎不明白为什么它不能工作/着火


任何帮助都将不胜感激。

基本上,你瞄准了错误的元素。只需使用:

$('ul li').click(
    function(){
        $(this).next('li.info').show();
    });

在原始代码中,
$(此)
是单击的
ul
(单击
click
事件从单击的
li
span
ul
),然后查找同样具有
info
类名的
ul
的下一个同级

我的修正案通过将
click
事件的目标设置为
li
,它有一个类为
info
的同级元素


顺便说一句,在jQuery不起作用的情况下,只需执行
console.log($(this))
检查您的选择器是否匹配您认为应该匹配的内容就很有帮助了。

您可以将事件绑定到span元素

$(document).ready(function(){
    $('ul span').click(function() {
        // $('.info').hide()
        $(this).parent().next().show();
    });
})

我不确定到底出了什么问题,但即使这在fiddle中起作用,它对我也不起作用。@jsksma2您的标记的结构应该与fiddle中的结构相同。我是弱智。在
.info
类之前列出了其他类。我只需要把它们调换一下。谢谢大家!!当我使用
console.log($(this))它返回了
[span]
。(至少不在铬18中)。