繁体   English   中英

父 div 事件处理程序订阅该类时如何获取子元素的 id

[英]How to get id of child element when parent div event handler subscribed to the class

所以我有一个如下所示的 div:

<div class="parentclass" id="parent">
    <select id="child1"></select>
    <select id="child2"></select>
    ...
</div>

然后我有以下事件处理程序:

$('.parentclass').on('change', function() { 
    alert(this.id);
});

当我更改子选项时,这会提醒父项的 id。 所以我想提醒孩子ID。 我知道我可以使用 jquery 通配符,但还有其他方法吗?

在此先感谢您的帮助。

event对象中获取目标元素,其中event对象可以作为回调的第一个参数访问。

$('.parentclass').on('change', function(event) { 
    alert(event.target.id);
});

 $('.parentclass').on('change', function(event) { alert(event.target.id); });
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="parentclass" id="parent"> <select id="child1"> <option>1</option> <option>1</option> <option>1</option> <option>1</option> <option>1</option> </select> <select id="child2"> <option>1</option> <option>1</option> <option>1</option> <option>1</option> <option>1</option> <option>1</option> </select> </div>


或者,如果需要,或者如果元素不是动态生成的,则使用事件委托将事件处理程序绑定到 select 标记。

$('.parentclass').on('change', 'select', function() { 
    alert(this.id);
});

// or without event-delegation
$('.parentclass select').on('change', function() { 
    alert(this.id);
});

 $('.parentclass').on('change', 'select', function() { alert(this.id); });
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="parentclass" id="parent"> <select id="child1"> <option>1</option> <option>1</option> <option>1</option> <option>1</option> <option>1</option> </select> <select id="child2"> <option>1</option> <option>1</option> <option>1</option> <option>1</option> <option>1</option> <option>1</option> </select> </div>

 $('select.select').on('change', function(event) { alert($(this).attr('id')); });
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="parentclass" id="parent"> <select id="child1" class='select'> <option>1</option> <option>1</option> <option>1</option> <option>1</option> <option>1</option> </select> <select id="child2" class='select'> <option>1</option> <option>1</option> <option>1</option> <option>1</option> <option>1</option> <option>1</option> </select> </div>

  1. 而不是使用 parent element ,因为您知道您将使用 select 将其用作选择器。
  2. 您还可以将类添加到选择然后将其用作选择器

为什么你不使用类来选择和编写js onchange这个类,alert($(this).attr('id'))

你只需要使用 like $('.parentclass select') 这会让你改变下拉id

 $('.parentclass select').on('change', function() { alert(this.id); });
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="parentclass" id="parent"> <select id="child1"> <option>option child1 1</option> <option>option child1 2</option> </select> <select id="child2"> <option>option child2 </option> <option>option child2 1</option> </select> </div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM