在angularjs中获取具有相同类名的div索引

时间:2015-07-13 12:05:09

标签: javascript jquery angularjs

我有多个具有相同类名的div,每个div都有多个元素(输入,选择和...)。现在我想将事件添加到input元素。输入事件运行时如何找到div索引?

<div class="container">
  <div class='item'>
          <input type="text" ng-click='test()'>
          <input type="text" >
          <input type="text" ng-click='test()'>
 </div>
<div class='item'>
          <input type="text" ng-click='test()'>
          <input type="text" >
          <input type="text" ng-click='test()'>
 </div>
  <div class='item'>
          <input type="text" ng-click='test()'>
          <input type="text" >
          <input type="text" ng-click='test()'>
 </div>
</div>

1 个答案:

答案 0 :(得分:0)

鉴于您对原始帖子的评论,我对您所需功能的理解是这样的:当用户输入input元素时,请标识div元素input& #39; s容器,alert() div元素的class属性。

为了做到这一点,正如我在你的帖子评论中所说,你可以使用jQuery的parent()方法,它将元素的父级作为jQuery对象返回,并且然后使用jQuery的attr()方法检查父类的属性。

<强> JSFiddle

如果您使用的是jQuery:

$(document).on('keyup', '.container input', function() {
    var $inputElement = $(this); // `this` is the event target
    var $parentDiv = $inputElement.parent();
    var parentClassName = $parentDiv.attr('class');
    alert(parentClassName);
});

如果您不使用jQuery:

var inputElements = document.querySelectorAll('.container input');

for(var i = 0; i < inputElements.length; i++) {
    inputElements[i].addEventListener('onkeyup', function(evt) {
        var inputElement = evt.target; // access event target using `evt.target`
        var parentDiv = inputElement.parentNode; // get the event target's parent element
        alert(parentDiv.className);
    });
}