jQuery - 使用多个.replace方法

时间:2013-10-26 20:32:27

标签: jquery

我有一个div,它将根据页面上的位置交换类名的位置。我正试图删除标题部分文字和标题类型文字,因此我只有付款资源。但是根据课程的位置,我有时会在标题类型类之前或之后获得一个空格。为了做到这一点,我调用.replace()3次,必须有一个更简洁的方法,而不是有三个.replace方法。有什么想法吗?

 <div class="header-section-payment header-type"></div>
 <div class="header-type header-section-resource"></div>

JQUERY

   var headerCategory = $(this).closest('div[class*="header-section-"]')
   .attr('class')
   .replace('header-section-', '')
   .replace(' header-type', '')
   .replace('header-type ', '');

我通过代码示例了解最佳信息,因此请在适用的地方提供。谢谢!

1 个答案:

答案 0 :(得分:1)

首先关闭类名中的额外空格绝对没有害处。也许如果你做了几千次相同的操作,你可能会担心额外空间的积累,但它并不会以任何方式造成问题。

对于您的特定情况,您可以使用jQuery的.removeClass("header-type")作为该类名,然后当您只删除“header-section”时,您将无需担心额外的空白。这可能是这样的:

var headerCategory = $(this).closest('div[class*="header-section-"]')
   .removeClass("header-type")
   .each(function() {
        this.className = this.className.replace('header-section-', '');
    }); 

请注意,在现有代码中,您正在调用.replace(),但不会将结果分配给任何内容,如果headerCategory中包含多个DOM对象,则代码将无效,这就是我使用{的原因{1}}在这里。