无法定位子元素,但在父元素上很好

时间:2014-01-02 19:38:50

标签: jquery html jquery-selectors

我试图用jQuery在下面的代码中定位a.click。点击a.click后,p.excerpt应向下滑动。

出于某种原因,当我定位a.click时jQuery没有做任何事情 - 点击它时没有任何反应。但是,如果我以父div为目标,则slidedown可以正常工作。

任何想法我做错了什么?

这是HTML:

<div class="listing">
    <div class="col-xs-4 title">
        <strong><a class="click">The Title</a> </strong>
        <p class="excerpt">The Excerpt.</p>
    </div>
</div>

下面&#39; jQuery无效:

jQuery( ".listing .title a.click" ).click(function() {
     jQuery( "p.excerpt", this ).slideToggle( "slow", function() {
     });
});

这里的jQuery工作得很好:

jQuery( ".listing .title" ).click(function() {
     jQuery( "p.excerpt", this ).slideToggle( "slow", function() {
     });
});

1 个答案:

答案 0 :(得分:3)

你的选择器是正确的。尝试:

jQuery( ".listing .title a.click" ).click(function(e) {
     e.preventDefault();
     jQuery(this).parent().next("p.excerpt").slideToggle( "slow", function() {
     });
});

您需要导航到锚点的父级,然后它的下一个元素是p.excerpt元素。使用语法jQuery( "p.excerpt", this ),您正在寻找p.excerpt元素后代的a.click。 (该处理程序中的this表示锚元素)