jQuery-使用泛型函数查找最近的匹配

jQuery-使用泛型函数查找最近的匹配,jquery,dom-traversal,Jquery,Dom Traversal,我有一个界面,可以通过单击插入符号图标来切换帮助的显示。以前,我使用硬编码ID进行选择和切换;现在,我正试图编写一个通用函数来处理所有事情。下面是我的DOM的一个示例: <h3 class="box-header">Step 1</h3> <i class="fa fa-caret-down help-toggle" data-toggle="tooltip" title="Click for help"></i> <div class="b

我有一个界面,可以通过单击插入符号图标来切换帮助的显示。以前,我使用硬编码ID进行选择和切换;现在,我正试图编写一个通用函数来处理所有事情。下面是我的DOM的一个示例:

<h3 class="box-header">Step 1</h3>
<i class="fa fa-caret-down help-toggle" data-toggle="tooltip" title="Click for help"></i>
<div class="box-body">
    <div class="row">
        <div class="col-md-12">
            <p class="help-text" style="display:none;">This is help for Step 1</p>
        </div>
    </div>
</div>

<h3 class="box-header">Step 2</h3>
<i class="fa fa-caret-down help-toggle" data-toggle="tooltip" title="Click for help"></i>
<div class="box-body">
    <div class="row">
        <div class="col-md-12">
            <p class="help-text" style="display:none;">This is help for Step 2</p>
        </div>
    </div>
</div>
我做了一些搜索,找到了一些有用的文章,但我仍然遗漏了一些东西。有什么想法吗?提前谢谢

变化:

$(this).closest('.row').find('.help-text').slideToggle("fast");
致:

.closest()
向上搜索DOM,您希望节点位于help toggle元素之后

更改:

$(this).closest('.row').find('.help-text').slideToggle("fast");
致:

.closest()
向上搜索DOM,您希望节点位于help toggle元素之后

尝试使用

$('.help toggle')。单击(函数(){
$(this.toggleClass('fa-caret-up-fa-caret-down');
$(this).closest('.row').find('.help text').first().slideToggle(“fast”);
});

尝试使用

$('.help toggle')。单击(函数(){
$(this.toggleClass('fa-caret-up-fa-caret-down');
$(this).closest('.row').find('.help text').first().slideToggle(“fast”);

});

closest()
不起作用,因为
.help toggle
没有祖先
.row
你是对的@dave,我读了他的问题中说“它切换所有帮助文本”的部分,但是由于它什么都不切换,我将投票给j08691的答案。
closest()
不起作用,因为
.help toggle
没有祖先
.row
你说得对@dave,我读了他的问题中说“它切换所有帮助文本”的部分,但是它什么也不切换,我将投票给j08691的答案。
$(this).next('div.box-body').find('.help-text').slideToggle("fast");