当使用AngularJS点击元素时,获得元素兄弟姐妹的惯用方式是什么?
到目前为止我已经得到了
<div ng-controller="FooCtrl"> <div ng-click="clicked()">One</div> <div ng-click="clicked()">Two</div> <div ng-click="clicked()">Three</div> </div> <script> function FooCtrl($scope){ $scope.clicked = function() { console.log("Clicked",this,arguments); }; } </script>
这里是一个jQuery实现作为一个具体的例子:
<div id="foo"> <div>One</div> <div>two</div> <div>three</div> </div> <script> $(function(){ $('#foo div').on('click',function(){ $(this).siblings('div').removeClass('clicked'); $(this).addClass('clicked'); }); }); </script>
使用指令,因为您想要遍历DOM:
app.directive('sibs',function() { return { link: function(scope,element,attrs) { element.bind('click',function() { element.parent().children().removeClass('clicked'); element.addClass('clicked'); }) },} });
<div sibs>One</div> <div sibs>Two</div> <div sibs>Three</div>
请注意,jQuery不是必需的。