首页 > 解决方案 > 如何使用 jQuery 中的类选择器获取 jQuery 中元素的所有类?

问题描述

我想找到每个 div 的所有类,但它不起作用。它仅使用 id 选择器工作正常,但不能在类选择器中工作。我尝试了很多方法,但没有成功。所以请任何人都可以解决这个问题。关于我如何做到这一点的任何想法?这只是演示代码

get_classes();

function get_classes() {
  $('.div1 .section').each(function() {
    var classList = $(this).attr("class");
    var classArr = classList.split(" ");
    if (classArr == 'like') {
      console.log(classArr)
    }
  });
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="div1">
  <div class="section outer">
    <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Inventore, veniam?</p>
  </div>
</div>
<div class="div1">
  <div class="section outer like">
    <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Inventore, veniam?</p>
  </div>
</div>

标签: jquery

解决方案


所以在这里我看到了两个问题。

第一个是您的首选选择器。使用您提供的 html,您必须先遍历父 div,然后在内部找到相应的 div。喜欢:

function get_classes() {
  $('.div1').each(function() {
  var $section = $(this).find('.section');
  
    $section.each(function() {

第二个问题是您尝试检查数组是否等于字符串( String.split() 根据doc返回数组)。

请找到以下工作示例:

function get_classes() {
  $('.div1').each(function() {
    var $section = $(this).find('.section');

    $section.each(function() {
      var classList = $(this).attr("class");
      var classArr = classList.split(" ");
      if (classArr.indexOf('like') !== -1) {
        console.log(classArr)
      }
    });

  });
}

get_classes();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="div1">
  <div class="section outer">
    <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Inventore, veniam?</p>
  </div>
</div>
<div class="div1">
  <div class="section outer like">
    <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Inventore, veniam?</p>
  </div>
</div>


推荐阅读