首页 > 解决方案 > 我正在尝试从 jquery 元素中捕获类的其余部分

问题描述

我很难赶上1from modal-id-

<div class="card-pg modal-id-1"></div>

我怎样才能在这个函数中做到这一点?

$('.card-pg').click(function () {

});

我试过用这个

$(this).attr('class').split(/\s+/)

但这给了我一个classListHTMLElement.classList,如果我选择$(this).attr('class').split(/\s+/)[1]赶上第二节课,我可能会失去在modal-id-1任何我想要的地方插入课程的灵活性。

标签: jquery

解决方案


您可以从.attr('class').split获取类列表开始,然后您可以检查每个类以检查它是否以 开头modal-id-

const MODAL_ID = 'modal-id';
$(function() {
  $('.card-pg').click(function() {
    let classes = $(this).attr('class').split(/\s+/);
    classes.forEach(c => {
      if (c.indexOf(MODAL_ID) == 0) {
        let modal_id = c.substr(MODAL_ID.length);
        console.log(modal_id)
      }
    });
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="card-pg modal-id-1">div</div>


推荐阅读