我有多个具有相同类名的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>
答案 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);
});
}