首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery -如果hasClass不适用于多个元素

jQuery -如果hasClass不适用于多个元素
EN

Stack Overflow用户
提问于 2018-02-10 00:01:48
回答 2查看 278关注 0票数 1

这是有点难以解释,但这里没有:

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

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

现在,我要做的是查看出现了哪些随机元素,这样我就可以将它们作为单击.wrapper中的对象。

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

代码语言:javascript
运行
复制
<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>

这是随机容器:

代码语言:javascript
运行
复制
<div class="random">
  <div class="object7"></div>
  <div class="object9"></div>
  <div class="object5"></div>
  <div class="object6"></div>
  <div class="object1"></div>
</div>

我试过这样做,而且效果很好,但它只适用于我第一次打电话给它,而且还必须有更好的方法。

代码语言:javascript
运行
复制
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...)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-10 00:18:34

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

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

代码语言:javascript
运行
复制
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]);
});
票数 1
EN

Stack Overflow用户

发布于 2018-02-10 00:06:55

对象真的需要在单独的类中吗?如果结构看起来是这样的话:

代码语言:javascript
运行
复制
<div class="wrapper">
  <div class="object" id = "obj1"></div>
  <div class="object" id = "obj2"></div>
  <div class="object" id = "obj3"></div>
  <!-- and so on -->
</div>

然后,可以在随机div中使用类"object“遍历每个div,如下所示:

代码语言:javascript
运行
复制
$('.random div').children(".object").each(function(i, obj) {
    //do things with each object
    //i is the index in the array of children with class object
    //obj is current object in the list

});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48715820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档