首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery -基于前缀的类名称提取

jQuery -基于前缀的类名称提取
EN

Stack Overflow用户
提问于 2021-05-31 14:30:40
回答 4查看 61关注 0票数 1

我使用的是WordPress,我需要获取存储在body标记中的类名的一部分。

我想在post-type前缀之后提取单词。

代码语言:javascript
复制
<body class="post-php post-type-dissertation is-fullscreen-mode wp-embed-responsive customize-support svg">
<body class="post-php post-type-subject-imposed is-fullscreen-mode wp-embed-responsive customize-support svg">

在我的示例中,我希望在dissertation前缀之后获得post-typesubject-imposed

使用我的代码,我得到了post-type之后的所有类

代码语言:javascript
复制
var $cn = jQuery('body[class*="post-type"]').attr('class');
console.log($cn.split('post-type-')[1]);

产出实例:

代码语言:javascript
复制
dissertation is-fullscreen-mode wp-embed-responsive customize-support svg

如何删除所有其他类并保留dissertationsubject-imposed单词?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2021-05-31 15:09:36

代码语言:javascript
复制
var cn = jQuery('body[class*="post-type"]').attr('class');

finder = 'post-type'
my_str = ''
cn.split(' ').forEach(function(item) {
  if(item.indexOf(finder) != -1){
    my_str = item.split('-').splice(2, 2).join('-')
    
  }
});

console.log(my_str)
票数 1
EN

Stack Overflow用户

发布于 2021-05-31 14:54:42

您可以获取所有类,然后将它们拆分为数组,然后循环遍历所有类,并根据这个remove类检查它是否包含post-type

演示代码

代码语言:javascript
复制
var $cn = jQuery('body').attr('class').split(/\s+/); //split..
console.log("BEFORE :  " + jQuery('body').attr('class'))
$($cn).each(function(i) {
  //check if has value..
  if ($cn[i].indexOf("post-type") < 0) {
    jQuery('body').removeClass($cn[i]) //remove class...
  }
})
console.log("AFTER :" + jQuery('body').attr('class').split('post-type-')[1])
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>

<body class="post-php post-type-dissertation is-fullscreen-mode wp-embed-responsive customize-support svg">
</body>

票数 1
EN

Stack Overflow用户

发布于 2021-05-31 14:57:16

您所能做的就是将所有类作为一个字符串。然后将类拆分为一个类数组。循环遍历类数组并搜索所需的文本。

代码语言:javascript
复制
jQuery(document).ready(function($) {

  var body_class = $('body').attr('class');
  var class_array = body_class.split(' ');
  class_array.forEach(function(ele) {
    if (ele.search("post-type-") != -1) {
      console.log(ele);
    }
  });


});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<body class="post-php post-type-subject-imposed is-fullscreen-mode wp-embed-responsive customize-support svg">

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

https://stackoverflow.com/questions/67775683

复制
相关文章

相似问题

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