使用Javascript Regular Expression replace()删除类

时间:2013-11-26 18:48:39

标签: javascript

如果HTML元素有更多类,例如:

class =“red blue white”

我有一个函数,它使用Reg Exp test()方法和最终添加类的函数来检查元素是否具有类。

下面是删除类的函数,一切正常,只是我不明白为什么最后一行的文字表达式/ $ /与“$”不一样。

如果我删除除了最后一个类名之外的任何其他名称,

“$”将替代/ $ /。如果删除最后一个类,它将在关闭类属性的引用之前保留空格。

这是功能:

var removeClass  = function(targetById, theClass)
        {
            var pattern = new RegExp("(^| )"+ theClass + "( |$)");

            if(hasClass(targetById, theClass))
            {
                targetById.className = targetById.className.replace(pattern, "$1");
                targetById.className = targetById.className.replace(/ $/, "");
            }
        };


        var heading = document.getElementById("heading");
        removeClass(heading, "white");

0 个答案:

没有答案