使用AngularJS双击获取li的孩子div id

时间:2015-05-28 10:29:47

标签: jquery html angularjs razor asp.net-mvc-5

我正在使用当前项目中的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>

3 个答案:

答案 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')