feat(utils): add common utility functions and validation constants
This commit is contained in:
51
src/utils/dom.ts
Normal file
51
src/utils/dom.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
/**
|
||||
* DOM 操作相关工具函数
|
||||
*/
|
||||
|
||||
/**
|
||||
* 检查元素是否包含指定 class
|
||||
* @param ele HTML 元素
|
||||
* @param cls class 名称
|
||||
* @returns 是否包含
|
||||
*
|
||||
* @example
|
||||
* ```ts
|
||||
* const hasActiveClass = hasClass(element, 'active');
|
||||
* ```
|
||||
*/
|
||||
export function hasClass(ele: HTMLElement, cls: string): boolean {
|
||||
return !!ele.className.match(new RegExp("(\\s|^)" + cls + "(\\s|$)"));
|
||||
}
|
||||
|
||||
/**
|
||||
* 为元素添加 class
|
||||
* @param ele HTML 元素
|
||||
* @param cls class 名称
|
||||
*
|
||||
* @example
|
||||
* ```ts
|
||||
* addClass(element, 'active');
|
||||
* ```
|
||||
*/
|
||||
export function addClass(ele: HTMLElement, cls: string): void {
|
||||
if (!hasClass(ele, cls)) {
|
||||
ele.className += " " + cls;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 从元素移除 class
|
||||
* @param ele HTML 元素
|
||||
* @param cls class 名称
|
||||
*
|
||||
* @example
|
||||
* ```ts
|
||||
* removeClass(element, 'active');
|
||||
* ```
|
||||
*/
|
||||
export function removeClass(ele: HTMLElement, cls: string): void {
|
||||
if (hasClass(ele, cls)) {
|
||||
const reg = new RegExp("(\\s|^)" + cls + "(\\s|$)");
|
||||
ele.className = ele.className.replace(reg, " ");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user