Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取click元素的索引_Javascript_Angularjs_Angularjs Directive_Scope_Angularjs Scope - Fatal编程技术网

Javascript 获取click元素的索引

Javascript 获取click元素的索引,javascript,angularjs,angularjs-directive,scope,angularjs-scope,Javascript,Angularjs,Angularjs Directive,Scope,Angularjs Scope,我正在尝试获取已单击元素的索引,但我一直在控制台中获取-1。我正在使用Array.prototype从nodelist HTML: e.target返回li元素,$element.children()返回div列表不li 请尝试以下代码: var index = Array.prototype.indexOf.call($element.find("li"), e.target); angular.module('app',[]).controller('mainCtrl',function

我正在尝试获取已单击元素的索引,但我一直在控制台中获取
-1
。我正在使用
Array.prototype
nodelist

HTML:


e.target
返回li元素,$element.children()返回
div
列表不
li

请尝试以下代码:

var index = Array.prototype.indexOf.call($element.find("li"), e.target);
angular.module('app',[]).controller('mainCtrl',function($scope){
$scope.myJson=[“mayank1”、“mayank2”、“mayank3”、“mayank4”、“mayank5”、“mayank6”、“mayank7”、“mayank8”、“mayank9”]
})
.directive('appClick',function(){
返回{
限制:“A”,
范围:正确,
控制器:函数($scope$element){
$element.bind(“单击”,函数(e){
var index=Array.prototype.indexOf.call($element.find(“li”),e.target);
控制台日志(索引);
});
}
}
});

  • {{json}}

  • e.target
    返回li元素,$element.children()返回
    div
    列表不
    li

    请尝试以下代码:

    var index = Array.prototype.indexOf.call($element.find("li"), e.target);
    
    angular.module('app',[]).controller('mainCtrl',function($scope){
    $scope.myJson=[“mayank1”、“mayank2”、“mayank3”、“mayank4”、“mayank5”、“mayank6”、“mayank7”、“mayank8”、“mayank9”]
    })
    .directive('appClick',function(){
    返回{
    限制:“A”,
    范围:正确,
    控制器:函数($scope$element){
    $element.bind(“单击”,函数(e){
    var index=Array.prototype.indexOf.call($element.find(“li”),e.target);
    控制台日志(索引);
    });
    }
    }
    });
    
    
    
  • {{json}}

  • 其他选项是设置索引

    <div ng-app='app' ng-controller='mainCtrl'>
      <div app-click="">
        <div ng-repeat="json in myJson">
          <li data-index="{{$index}}">{{json}}</li>
        </div>
      </div>
    </div>
    

    另一个选项是设置索引

    <div ng-app='app' ng-controller='mainCtrl'>
      <div app-click="">
        <div ng-repeat="json in myJson">
          <li data-index="{{$index}}">{{json}}</li>
        </div>
      </div>
    </div>
    

    一个问题。如果我有多个li,并且我想使用class=“list1”转到一个特定的li,并且。。。你能解释一下为什么$element.children()不起作用吗?你可以使用
    .find(“li[class='list1'])
    来找出原因element@user4756836$element.children()返回
    div
    列表非
    li
    ,e.target返回li元素一个问题。如果我有多个li,并且我想使用class=“list1”转到一个特定的li,并且。。。你能解释一下为什么$element.children()不起作用吗?你可以使用
    .find(“li[class='list1'])
    来找出原因element@user4756836$element.children()return
    div
    list not
    li
    ,e.target return li element应该考虑到这一点!谢谢。这是一个不同的按键行为。。如果我希望enter键与单击键具有相同的行为。。。当我按enter键时,我没有定义,但当我单击时,右e.target。li如何按键?如果我按住它。。。然后按回车键。。。我已经在容器及其子元素上设置了tabindexes。什么是e.target?问题不在于索引,问题在于你是如何绑定事件的。你应该考虑到这一点!谢谢。这是一个不同的按键行为。。如果我希望enter键与单击键具有相同的行为。。。当我按enter键时,我没有定义,但当我单击时,右e.target。li如何按键?如果我按住它。。。然后按回车键。。。我已经在容器及其子元素上设置了tabindexes。什么是e.target?问题不在于索引,而在于您如何绑定事件。
    e.target.dataset.index