无法解析父节点自定义属性

时间:2015-05-26 09:43:25

标签: javascript angularjs

我有一个容器div,其中包含自定义数据属性data-gid。在单击div中的元素时,我需要获取父div的自定义属性。

Html

     <div ng-repeat="(key, qn) in list >
     <div data-gid="{{ qn.id }}" >
        <div id="child1">
           <button ng-click="getParents($event);">Click</button>
         </div>
     <div>
    </div>

Js

$scope.getParents = function(evt){
  var elem = evt.target.parentNode.getAttribute('data-gid');
  console.log(elem); 
}

问题是我总是将data-gid作为null。 当我检查

console.log(evt.target.parentNode)

我得到的是

<div data-gid="" >

那么这里的问题是什么?

2 个答案:

答案 0 :(得分:1)

由于evt.target.parentNode将指向div#child1,您需要找到其父级,因此您需要使用

evt.target.parentNode.parentNode.getAttribute('data-gid')

OR,我建议您可以将qn.id直接传递给该功能

<button ng-click="getParents(qn.id);">Click</button>

答案 1 :(得分:1)

将gid参数传递给函数

<div ng-repeat="(key, qn) in list >
 <div data-gid="{{ qn.id }}" >
    <div id="child1">
       <button ng-click="getParents(qn.id);">Click</button>
     </div>
 <div>
</div>




 $scope.getParents = function(gid){      
  console.log(gid); 
}