获取类名相关

  JS中获取DOM节点的类有3种方法:

1、classList

  H5的方法,仅兼容IE10+,配套带有remove等api

2、getAttribute(‘class‘)

  据说在低版本IE有兼容问题,建议用方法3

3、className

  这个方法万能

  

  其实要讲的是看到vue源码里面的一个方法,兼容IE9一个对类进行操作的方法。

  记下来以后用。

// DOM节点与要删除的类
function removeClass(el, cls){
  // 这里已经对cls调用了trim()方法
  if(!cls || !cls = cls.trim()){
    return ;
  }
  // classList兼容IE10+
  // 如果支持 直接按空格分割字符串并调用remove方法删除类
  if(el.classList){
    if(cls.indexOf(‘ ‘) > -1){
      cls.split(/\s+/).forEach(function(c){ return el.classList.remove(c); });
    } else{
      el.classList.remove(cls);
    }
  }
  // 对IE10以下做兼容 不知道为啥不用className
  else{
    // 修正类集合字符串 两边加空白
    // ‘a b‘ => ‘ a b ‘
    var cur = ‘ ‘ + (el.getAttribute(‘class‘) || ‘‘) + ‘ ‘;
    // 修正目标类 ‘a‘ => ‘ a ‘
    var tar = ‘ ‘ + cls + ‘ ‘;
    // 进行替换 ‘ a b ‘ => ‘ b ‘
    while(cur.indexOf(tar) >= 0){
      cur = cur.replace(tar, ‘ ‘);
    }
    // 再调用trim()操作 ‘ b ‘ => ‘b‘
    el.setAttribute(‘class‘, cur.trim());
  }
}
时间: 2024-11-05 15:38:12

获取类名相关的相关文章

HTML5 DOM元素类名相关操作API classList简介(转载自张鑫旭大神)

一.其实事情的发展就像切水果 如果我们把元素的类名操作比作“切水果”游戏的话,其中一个单独的类名就好比“水果”或“炸弹”! DOM Level 2时代,类名的获取与设置,多半使用className属性,className的生效近似切水果的“一刀切”.在web的初期,交互什么的其实很简单的来:就像切水果刚开始的时候,一次就一个水果飞上来,一刀“咔嚓”切了就好,就像使用className赋个类名值,就算偶尔冒出2个水果,className也可以一刀切搞定的. 但是,随着web的发展,交互的逐渐复杂,

C# 获取操作系统相关的信息

本文通过一个Demo,讲解如何通过C#获取操作系统相关的信息,如内存大小,CPU大小,机器名,环境变量等操作系统软件.硬件相关信息. 涉及到知识点: Environment 提供有关当前环境和平台的信息以及操作它们的方法. ManagementClass 表示公共信息模型 (CIM) 管理类.管理类是一个 WMI 类,如 Win32_LogicalDisk 和 Win32_Process,前者表示磁盘驱动器,后者表示进程(如 Notepad.exe).通过该类的成员,可以使用特定的 WMI 类路

获取IP相关信息和文件上传

获取IP相关信息 要获取用户访问者的IP地址相关信息,可以利用依赖注入,获取IHttpConnectionFeature的实例,从该实例上可以获取IP地址的相关信息,实例如下: var connection1 = Request.HttpContext.GetFeature<IHttpConnectionFeature>(); var connection2 = Context.GetFeature<IHttpConnectionFeature>(); var isLocal =

使用ttXactAdmin、ttSQLCmdCacheInfo、ttSQLCmdQueryPlan获取SQL相关详细信息[TimesTen运维]

使用ttXactAdmin.ttSQLCmdCacheInfo.ttSQLCmdQueryPlan获取SQL相关详细信息,适合于tt11以上版本. $ ttversion TimesTen Release 11.2.2.4.3 (64 bit Linux/x86_64) (tt1122:53396) 2013-02-09T17:19:52Z Instance admin: timesten Instance home directory: /TimesTen/tt1122 Group owner

Linux sysinfo获取系统相关信息

Linux中,可以用sysinfo来获取系统相关信息. #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <linux/unistd.h> /* for _syscallX macros/related stuff */ #include <linux/kernel.h> /* for struct sysinfo */ //_syscall1(int, sysi

PHP获取手机相关信息

该PHP操作类实现获取手机号手机头信息,取UA,取得手机类型,判断是否是opera,判断是否是m3gate,取得HA,取得手机IP 代码如下: <?php /** * @desc 手机操作类 获取手机相关信息 * @since */class mobile { /** * 函数名称: getPhoneNumber * 函数功能: 取手机号 * 输入参数: none * 函数返回值: 成功返回号码,失败返回false * 其它说明: 说明 */ public function getPhoneNu

使用ttXactAdmin、ttSQLCmdCacheInfo、ttSQLCmdQueryPlan获取SQL相关具体信息[TimesTen运维]

使用ttXactAdmin.ttSQLCmdCacheInfo.ttSQLCmdQueryPlan获取SQL相关具体信息,适合于tt11以上版本号. $ ttversion TimesTen Release 11.2.2.4.3 (64 bit Linux/x86_64) (tt1122:53396) 2013-02-09T17:19:52Z Instance admin: timesten Instance home directory: /TimesTen/tt1122 Group owne

借助Sigar API获取CPU相关信息

Sigar(全称System Information Gatherer And Reporter,即系统信息收集报表器),它提供了一个开源的跨平台的收集计算机硬件和操作系统信息的API(该API底层接口用C语言编写),本文将演示如何借助Sigar API获取CPU相关信息: package com.ghj.packageoftest; import org.hyperic.sigar.Cpu; import org.hyperic.sigar.CpuInfo; import org.hyperi

Java中获取类名的3种方法!

获取类名的方法 Java 中获取类名的方式主要有以下三种. getName() 返回的是虚拟机里面的class的类名表现形式. getCanonicalName() 返回的是更容易理解的类名表示. getSimpleName() 返回的是类的简称. 都有什么区别? 通过一个实例来看下它们主要的区别. public class TestClass { public static void main(String[] args) { // 外部普通类 System.out.println("方法名