获取AngularJS中当前单击元素的父元素的id

时间:2014-09-09 09:25:19

标签: angularjs

如何在AngularJS中获取当前单击元素的父元素的id?

<div id="d8" class="menutitles ng-scope" ng-repeat="title in list">
     <div class="right" ng-click="showsubmenu($event)">+</div>
     <div class="left" ng-click="showsubmenu($event)">Unit 9</div>
</div>

如何在showsubmenu($event)函数中获取值 d8

以下是我尝试但不起作用

$scope.showsubmenu=function(obj)
{
    alert(obj.target.parent.attributes.id)
}

3 个答案:

答案 0 :(得分:17)

它应该是parentNode,而不仅仅是parent

alert(obj.target.parentNode.id);

attributes也是多余的,因为您可以直接访问id属性。

但请注意,由于您拥有ngRepeat,因此会产生无效的标记,因为ID将会重复。你可能也想解决这个问题,也许是这样或使用类:

<div id="d8{{$index}}" class="menutitles ng-scope" ng-repeat="title in list">
    <div class="right" ng-click="showsubmenu()">+</div>
   <div class="left" ng-click="showsubmenu()">Unit 9</div>
</div>

答案 1 :(得分:6)

<div id="d8" class="menutitles ng-scope" ng-repeat="title in list">
    <div class="right" ng-click="showsubmenu()">+</div>
   <div class="left" ng-click="showsubmenu()">Unit 9</div>
</div>

应该足够了:D

function showsubmenu($event){
    $($event.target).parent();

}

度过愉快的一天

答案 2 :(得分:0)

作为佩德罗回答的补充,我想最好使用jQuery method closest

function showsubmenu($event){
    var parent = $($event.target).closest('.yourclass'); // or any selector you prefer
}