Javascript 在AngularJS中查找最近的元素

Javascript 在AngularJS中查找最近的元素,javascript,angularjs,Javascript,Angularjs,我想在单击a时滑动切换最近的.contactDetails。下面是我不工作的代码 <ul> <li ng-repeat="detail in details"> <div> <a show-contact>{{something}}</a> <div class="contactDetails"> <ul>

我想在单击
a
时滑动切换最近的
.contactDetails
。下面是我不工作的代码

<ul>
    <li ng-repeat="detail in details">
        <div>
            <a show-contact>{{something}}</a>
            <div class="contactDetails">
                <ul>
                    <li ng-repeat="another ng-repeat">
                        <b>{{something}}</b>
                    </li>
                </ul>
            </div>
            <br>
        </div>
    </li>
</ul>

app.directive("showContact", function () {
        return {
            restrict: "A",
            link: function (scope, element) {
                element.click(function () {
                    element.find(".contactDetails").slideToggle();
                });
            }
        };
    });
  • {{something}}
    • {{something}}

应用指令(“showContact”,功能(){ 返回{ 限制:“A”, 链接:功能(范围、元素){ 元素。单击(函数(){ 元素。查找(“.contactDetails”).slideToggle(); }); } }; });
我认为AngularJS找不到最近的
联系人详细信息,因此无法执行slideToggle()


我试过了,但是
元素。最近的(.contactDetails”)
也不起作用。谢谢您的帮助。

因为锚定标记不包含您无法使用的div。最近的搜索是向上搜索,而不是向下搜索。下面是我将如何做(仅显示指令的link:part):


我已经创建了您要求的-->运行代码段的解决方案

1)在这里我得到了.contactDetails元素

 element.on('click', function () {
     //Code goes here               
 });
var contactDetails=element.next()

2)然后我调用方法

.toggleClass('隐藏')

在.contactDetails元素上,显示/隐藏元素

3)“.hide”类的显示属性设置为无

 element.on('click', function () {
     //Code goes here               
 });
显示:无

4)在元素上添加事件侦听器

 element.on('click', function () {
     //Code goes here               
 });
var myapp=angular.module('myapp',[]);
myapp.指令(“showContact”,函数(){
返回{
限制:“A”,
链接:功能(范围、元素){
元素上('单击',函数(){
var contactDetails=element.next();
contactDetails.toggleClass('hide');
});
}
}
});
myapp.controller('MainCtrl',['$scope',函数($scope){
this.something='this is something';
this.arr=['mike','john','brian','joe'];
}]);
正文{
字体系列:Arial,Tahoma;
}
.隐藏{
显示:无;
}
a{
光标:指针;
}

  • 切换类(单击我)
    • {{name}}


我不明白你所说的“向下遍历”和“查找壁橱.contactDetails”是什么意思-ng repeat只是一个指令,它在数组的每个索引上进行迭代。。。请更具体地说明你的想法question@MaxwellLasky希望我现在明白了,我刚刚更新了问题(谢谢。对不起,我仍然很难准确地理解您的问题……也许创建一个JSFIDLE可以帮助他人和我更好地理解您的问题。