2015-05-26 44 views
0

我有一个容器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-gidnull。 当我检查

console.log(evt.target.parentNode) 

什么,我得到的是

<div data-gid="" > 

所以这里有什么问题?

回答

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

methinks,第二个变体更好:-) – Grundy

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); 
}