我有一个容器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="" >
那么这里的问题是什么?
答案 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);
}