不能获取class为多个的情况

function getByClass(parent,cls){
var res=[];
var ele=parent.getElementsByTagName("*");
for(var i=0;i<ele.length;i++){
if(ele[i].className==cls){
res.push(ele[i]);
}
}
return res;
}

\b 把除字母、数字、下划线的其它字符都当成是边界,当class为像abc-test时可能获取不准确

function getByClass(parent,cls){
var res=[];
var reg=new RegExp("\\b"+cls+"\\b",i);
var ele=parent.getElementsByTagName("*");
for(var i=0;i<ele.length;i++){
if(reg.test(ele[i].className)){
res.push(ele[i]);
}
}
return res;
}

有空格

function getByClass(parent,cls){
var res=[];
var reg=new RegExp(" "+cls+" ",i);
var ele=parent.getElementsByTagName("*");
for(var i=0;i<ele.length;i++){
if(reg.test(" "+ele[i].className+" ")){
res.push(ele[i]);
}
}
return res;
}

空格使用正则来处理

function getByClass(parent,cls){
var res=[];
var reg=new RegExp('(^|\\s)'+cls+'($|\\s)','i');
var ele=parent.getElementsByTagName("*");
for(var i=0;i<ele.length;i++){
if(reg.test(ele[i].className)){
res.push(ele[i]);
}
}
return res;
}

结合getElementsByClassName()

function getByClass(parent,cls){
if(parent.getElementsByClassName){
return parent.getElementsByClassName(cls);
}
else{
var res=[];
var reg=new RegExp(" "+cls+" ","i");
var ele=parent.getElementsByTagName("*");
for(var i=0;i<ele.length;i++){
if(reg.test(" "+ele[i].className+" ")){
res.push(ele[i]);
}
}
return res;
}
}

About getByClass的更多相关文章

  1. 原生js实现增加(addclass),删除(removeclass),判断是否存在(hasclass),如果存在删除,如果不存在添加(toggleclass)和获取类名(getbyclass)的方法

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  2. getbyclass

    其实以前我偷偷学习正则表达式的时候,写过一个getbyclass的方法,最近翻了翻到处都是错,或者好多重复的,没有用的 代码,于是显得没事我就把这个精简了一下,其实这个方法现在我觉得也是有问题的,问题 ...

  3. 原生JavaScript实现的addclass,removeclass,hasclass,toggleclass,getbyclass

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  4. 封装getByClass

    方法一:(普通版),获取单一的class: function getByClass(oParent, sClass) { var aResult = []; var aEle = oParent.ge ...

  5. 正则版----getByClass函数

    function getByClass(oParent,sClass){ var arr = []; var aEle = oParent.getElementsByTagName('*'); //v ...

  6. js中getByClass()函数

    js中getByClass()函数进化史 对于js来说,我想每一个刚接触它的人都应该会抱怨:为什么没有一个通过class来获取元素的方法.尽管现在高版本的浏览器已经支持getElementsByCla ...

  7. js getByClass函数封装

    function getByClass(oParent, sClass) { var aEle=oParent.getElementsByTagName('*'); var aResult=[]; v ...

  8. js 中class选择器,addClass,removeClass,hasClass,toggleClass,getByClass

    <!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...

  9. 原生JS编写getByClass、addClass、removeClass、hasClass

    前言: 年后换了工作,在现在的公司写交互主要使用JS原生:刚刚入门前端的时候写交互一直用的原生JS,虽然用的不怎么样.后来去之前的公司之后,leader主张把jQuery用好,JS原生自然就熟练了:一 ...

  10. 封装getByClass(JS获取class的方法封装为一个函数)

    获取方法一(普通版) 获取单一的class: function getByClass(oParent, sClass) {//两个形参,第一个对象oParent 第二个样式名class var aEl ...

随机推荐

  1. spring-web中的StringHttpMessageConverter简介

    spring的http请求内容转换,类似netty的handler转换.本文旨在通过分析StringHttpMessageConverter 来初步认识消息转换器HttpMessageConverte ...

  2. Django--分页、session

    分页 分页的实现,是由我们自己写的后端代码组建而成,这段写的代码可以直接放在以后的任何分页结构中使用. 先来谈谈原始逻辑: 主页代码如下: <!DOCTYPE html> <html ...

  3. 基于togglepoolmember.pl编写F5设备控制模块

    为了方便利用python对F5设备进行操作,本文将togglepoolmember.pl对F5设备的控制写成了python模块,源代码例如以下: #!/usr/bin/python # -*- cod ...

  4. jQuery Validate(一)

    jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单. 但是在学习的过程中,我也遇到了疑惑,网上的很多例子貌似都是依赖jquery.metadata.js这个库, ...

  5. redis错误error记录

    早上登服务器,看到程序的redis的报错, 具体如下: (error) MISCONF Redis is configured to save RDB snapshots, but is curren ...

  6. mapreduce代码实现入门

    mapreduce代码主要包括三个类,map类.reduce类以及测试类! 以wordcount为例, map类为: static class WordMapper extends Mapper< ...

  7. 数据结构:最小生成树--Kruskal算法

    Kruskal算法 Kruskal算法 求解最小生成树的还有一种常见算法是Kruskal算法.它比Prim算法更直观.从直观上看,Kruskal算法的做法是:每次都从剩余边中选取权值最小的,当然,这条 ...

  8. 【oracle案例】ORA-01102: cannot mount database in EXCLUSIVE mode

    ORA-01102: cannot mount database in EXCLUSIVE mode 今天在fedora上安装完10g后,测试数据库是否安装成功.STARTUP数据库时,发生如下错误: ...

  9. CDH使用Solr实现HBase二级索引

      一.为什么要使用Solr做二级索引二.实时查询方案三.部署流程3.1 安装HBase.Solr3.2 增加HBase复制功能3.3创建相应的 SolrCloud 集合3.4 创建 Lily HBa ...

  10. 【题解】P3796【模板】AC自动机(加强版)

    [题解]P3796 [模板]AC自动机(加强版) 记录当前\(cnt\)是第几个"星".记录第几个串是对应着第几个星. 这里补充一点对于\(AC\)自动机的理解.可能一直有个问题我 ...