首页 > 解决方案 > 如何在 JQuery 中选择具有特定类型的所有 div?

问题描述

我的 HTML 代码中有一些 div 类型为“按钮”(参见下面的代码)。如何在 JQuery 中选择所有这些按钮并为它们添加点击侦听器?

<div class="container">
      <div lass="row">
        <div type="button" id="green" class="btn green"></div>

        <div type="button" id="red" class="btn red"></div>
      </div>

      <div class="row">
        <div type="button" id="yellow" class="btn yellow"></div>
        <div type="button" id="blue" class="btn blue"></div>
      </div>
    </div>

这是我尝试过的事情之一:

$('[class*="btn"]').click(function () {
  console.log("Method called!");
  $(this).addClass("pressed");
  setTimeout(function () {
    $(this).removeClass("pressed");
  }, 50);

}

标签: javascripthtmljquery

解决方案


改变

$('[class*="btn"]').click(function () {

$('.btn').click(function () {

然而,将同一个事件绑定到多个元素并不理想——一旦你得到相当数量的元素,这将导致性能问题。相反,将事件委托给父级。

$('.container').on('click', '.btn', function () {

推荐阅读