首頁 >web前端 >css教學 >如何有效率地刪除 JavaScript 中帶有特定前綴的類別?

如何有效率地刪除 JavaScript 中帶有特定前綴的類別?

Linda Hamilton
Linda Hamilton原創
2024-11-30 02:46:14116瀏覽

How to Efficiently Remove Classes with a Specific Prefix in JavaScript?

管理具有特定前綴的類別

在JavaScript 中操作類別可能具有挑戰性,尤其是在處理屬於具有唯一前綴的不同組的多個類別時。本文探討了一個常見問題:從 DIV 元素中刪除具有特定前綴的類別並將其替換為新的類別。

問題

假設您有一個 DIV ID 為「a」的元素可以具有來自不同組的多個類別。每個組都有一個特定的前綴。但是,在 JavaScript 程式碼中,您可能不知道目前將特定群組中的哪個類別指派給 DIV 元素。您的目標是刪除所有帶有“bg”等前綴的類別並添加一個新類別。以下程式碼片段說明了該問題:

$("#a").removeClass("bg*");

但是,此程式碼無法如預期般運作。

解決方案

更強大的方法就是使用正規表示式,在單字邊界上分割類別名稱,並過濾掉沒有指定前綴的類別。以下是一個範例:

var prefix = "bg";
var classes = el.className.split(" ").filter(function(c) {
    return c.lastIndexOf(prefix, 0) !== 0;
});
el.className = classes.join(" ").trim();

或者,您可以建立一個 jQuery mixin 來簡化此過程:

$.fn.removeClassPrefix = function(prefix) {
    this.each(function(i, el) {
        var classes = el.className.split(" ").filter(function(c) {
            return c.lastIndexOf(prefix, 0) !== 0;
        });
        el.className = $.trim(classes.join(" "));
    });
    return this;
};

要使用此 mixin,只需在 DIV 上呼叫removeClassPrefix()函數即可元素,指定要刪除的前綴:

$("#a").removeClassPrefix("bg");

ES6更新(2018)

在現代JavaScript(ES6 及更高版本)中,您可以使用更簡單版本的解:

const prefix = "bg";
const classes = el.className.split(" ").filter(c => !c.startsWith(prefix));
el.className = classes.join(" ").trim();

此程式碼利用箭頭函數和startsWith( )方法來有效過濾掉具有指定前綴的類別。

以上是如何有效率地刪除 JavaScript 中帶有特定前綴的類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn