jQuery - 如果 hasClass 但对于多个元素

标签 jquery random element

这有点难以解释,但这里没什么意义:

我有 .wrapper,它包含 50 个元素,没有点击事件。

在另一个地方,我随机加载了 50 个元素中的 5 个。

现在我想做的是查看出现了哪 5 个随机元素,以便我可以将它们转变为 .wrapper 中的点击对象。

例如,这是包含元素的包装器:

<div class="wrapper">
  <div class="object1"></div>
  <div class="object2"></div>
  <div class="object3"></div>
  <div class="object4"></div>
  <div class="object5"></div>
  <div class="object6"></div>
  <div class="object7"></div>
  <div class="object8"></div>
  <div class="object9"></div>
  <div class="object10"></div>
  <!-- and so on -->
</div>

这是随机容器:

<div class="random">
  <div class="object7"></div>
  <div class="object9"></div>
  <div class="object5"></div>
  <div class="object6"></div>
  <div class="object1"></div>
</div>

我已经尝试过这样的方法并且它有效,但它仅适用于我调用的第一个,此外,必须有更好的方法。

if ($('.random div').hasClass(".object1")){
  $(".wrapper .objects1").on("click", function() {
    // do things
  });
}

if ($('.random div').hasClass(".object2")){
  $(".wrapper .objects2").on("click", function() {
    // do things
  });
}

if ($('.random div').hasClass(".object3")){
  $(".wrapper .objects3").on("click", function() {
    // do things
  });
}

// and so on (until 50...)

最佳答案

您可以选择所有随机 div,然后获取它们的类并选择包装器内的 div。创建一个包含点击处理程序的映射对象。您可以通过传递该类来获取特定的点击处理程序。

如果它们是唯一的,您应该使用 id。

var clickHandlers = {
    object7: function(e) {
        // do things for 7
    },
    object8: function(e) {
        // do things for 8
    },
    ...
};

var randomDivs = $('.random div');
$.each(randomDivs, function(index, randomDiv) {  
  var divClass = randomDiv.className;
  var wrapperDiv = $('.wrapper .'+divClass);
  wrapperDiv.on('click', clickHandlers[divClass]);
});

关于jQuery - 如果 hasClass 但对于多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48715820/

相关文章:

javascript - 开 Jest : How to I test a function that calls another function in the body

c# - 这个 C# asp.net 随 secret 码代码是如何工作的?

c++ - 如何让每个线程在 C++11 中使用自己的 RNG

Android - 从 gridview 的特定元素检索字符串

python - 将 numpy 数组中的元素四舍五入为另一个数组中相同索引的个数

javascript - 如何检查可见 DOM 中是否存在元素?

javascript - jqplot错误: Uncaught Canvas dimension not set

javascript - 使用多个选择器,每个选择器都有不同的事件

javascript - 使用前端表单/输入框和 ajax 更新帖子元,无需重新加载页面

jQuery - css ('border-width' ) 在 Firefox 上作为空字符串返回,但在 Chrome 上不返回