jQuery $(this).find无效

the*_*ise 10 jquery jquery-selectors

我正在制作一个带有一长串文章的手风琴.

当我使用以下内容时,我有jQuery工作,只有它会在页面上的每篇文章上滑动/关闭:

$('article a').click(function() {
    $('article').find('h3').slideToggle('fast');
});
Run Code Online (Sandbox Code Playgroud)

理论上这应该有用,但它没有做任何事情:

$('article a').click(function() {
    $(this).find('h3').slideToggle('fast');
});
Run Code Online (Sandbox Code Playgroud)

你可以在这里看到一个演示:http://jsfiddle.net/CfqGG/

我哪里错了?

Bol*_*ock 16

从理论上讲应该不会在点击事件,因为工作,this指的是<a>,不是<article>,因为你的点击事件势必<a>.

试试这个:

$('article a').click(function() {
    $(this).parent().find('h3').slideToggle('fast');
});
Run Code Online (Sandbox Code Playgroud)


Gid*_*don 7

$(this).siblings('h3').slideToggle('fast');
Run Code Online (Sandbox Code Playgroud)

this引用a元素,并find搜索其中的元素descendants.h3不是后代而是兄弟姐妹.


Sar*_*raz 5

你需要这个:

$('article a').click(function() {
    $(this).closest('article').find('h3').slideToggle('fast');
});
Run Code Online (Sandbox Code Playgroud)

查看演示