我正在使用当前项目中的Angular JS。我需要获得div标签的id,它在li标签上双击li标签。见下面的代码。
我尝试了儿童逻辑,但它没有用。
var mainMod = angular.module('chartApp', []);
mainMod.controller('chartAppController', ['$scope', function ($scope) {
var flag = 1;
$scope.doubleClick = function (event) {
var chId = $(this).children('div.panel.panel-primary').children('div.panel-body.chartBody').children('div').attr('id');
alert(chId);
}
}
}])
下面是代码结构。
<div class="container-fluid" data-ng-app="chartApp" data-ng-controller="chartAppController">
<ul id="dashboard">
@foreach (var chart in chartCollection)
{
<li ng-dblclick="doubleClick($event)">
<div class="panel panel-primary">
<div class="panel-heading chartTileHeader">
<span class="chartTitle">@chart.Title</span>
<div class="chartIcon">
<i class="fa fa-folder-open"></i>
</div>
</div>
<div class="panel-body chartBody">
<div id=@chart.Id>
.....
</div>
</div>
</div>
</li>
}
</ul>
</div>
答案 0 :(得分:1)
我试过这个:
event.target 正在为&lt;中的特定元素工作li>标签
var chId = $(event.target).find('div.panel-body.chartBody > div').attr('id')
但是如果你想获得&lt;的子层次结构li>双击标记然后你应该使用 event.currentTarget
var mainMod = angular.module('chartApp', []);
mainMod.controller('chartAppController', ['$scope', function ($scope) {
var flag = 1;
$scope.doubleClick = function (event) {
var chId = $(event.currentTarget).find('div.panel-body.chartBody > div').attr('id');
alert(chId);
}
}
}])
答案 1 :(得分:0)
使用 find 选择器查找特定元素
$(this).find('div.panel-body.chartBody div').map(function(){
return this.id;
}).get();
如果你有单一的div
$(this).find('div.panel-body.chartBody > div').attr('id')
答案 2 :(得分:0)
试试这个:
var chId = $(event.currentTarget).find('div.panel-body.chartBody&gt; div')。attr('id')