getbyclass
其实以前我偷偷学习正则表达式的时候,写过一个getbyclass的方法,最近翻了翻到处都是错,或者好多重复的,没有用的 代码,于是显得没事我就把这个精简了一下,其实这个方法现在我觉得也是有问题的,问题在于我不知道原生的getElementsByClassName获取元素后生产的是不是数组,不管这个到不是重点,以后有时间了我在验证一下就可以了,另外我发现css是区分大小写的,看来没事看看正则还是能涨很多知识的,因为我感觉这次简化的时候收获比较大,于是我决定把这次也简化记录下来,反正记录不花钱。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>getbyclass</title>
<style>
.a{ color:green!important;}
</style>
</head>
<body>
<ul id="oUl">
<li class="A">111111111111111111111</li>
<li class="as dfd">222222222222222222222</li>
<li class="asd ad">333333333333333333333</li>
<li class="sdfsd dfd 22df">444444444444444444444</li>
<li class="jhasd gksdj">555555555555555555555</li>
<li class="asd dfgf b as era">666666666666666666666</li>
<li class="fgfa as efgf5 fghf2asdf">777777777777777777777</li>
</ul>
</body>
</html>
<script type="text/javascript">
var oUl=document.getElementById("oUl");
var aLi=document.getElementsByTagName("li");
var as=getbyclass("as",oUl);
for(var i=0;i<as.length;i++){
as[i].style.color="red";
} function getbyclass(oClass,Oparent){
var oParent=oParent||document;
if(Oparent.getElementsByClassName){
return Oparent.getElementsByClassName(oClass)
}else{
var re=[];
var reg=new RegExp("\\b"+oClass+"\\b")
var ch=oParent.getElementsByTagName("*");
for(var i=0;i<ch.length;i++){
var str=ch[i].className;
if(reg.test(str)){
re.push(ch[i]);
}
}
return re;
}
}
</script>
getbyclass的更多相关文章
- 原生js实现增加(addclass),删除(removeclass),判断是否存在(hasclass),如果存在删除,如果不存在添加(toggleclass)和获取类名(getbyclass)的方法
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- 原生JavaScript实现的addclass,removeclass,hasclass,toggleclass,getbyclass
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- 封装getByClass
方法一:(普通版),获取单一的class: function getByClass(oParent, sClass) { var aResult = []; var aEle = oParent.ge ...
- 正则版----getByClass函数
function getByClass(oParent,sClass){ var arr = []; var aEle = oParent.getElementsByTagName('*'); //v ...
- js中getByClass()函数
js中getByClass()函数进化史 对于js来说,我想每一个刚接触它的人都应该会抱怨:为什么没有一个通过class来获取元素的方法.尽管现在高版本的浏览器已经支持getElementsByCla ...
- js getByClass函数封装
function getByClass(oParent, sClass) { var aEle=oParent.getElementsByTagName('*'); var aResult=[]; v ...
- js 中class选择器,addClass,removeClass,hasClass,toggleClass,getByClass
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...
- 原生JS编写getByClass、addClass、removeClass、hasClass
前言: 年后换了工作,在现在的公司写交互主要使用JS原生:刚刚入门前端的时候写交互一直用的原生JS,虽然用的不怎么样.后来去之前的公司之后,leader主张把jQuery用好,JS原生自然就熟练了:一 ...
- 封装getByClass(JS获取class的方法封装为一个函数)
获取方法一(普通版) 获取单一的class: function getByClass(oParent, sClass) {//两个形参,第一个对象oParent 第二个样式名class var aEl ...
随机推荐
- thinphp讲解(三)——空操作、空控制器、跨控制器、命名空间
一.“空操作”本质意思:一个对象(控制器)调用本身不存在的操作方法 一般网站处于安全考虑不给用户提示任何错误信息 在tp里面控制器controller.class.php里有个_call()方法 所以 ...
- linux下调整音量大小
不得不说,在linux下整音频和视频真是不容易.在windows中自带了关于音频和视频的工具,在linux下要两眼一抹黑地使用命令进行操作. 主要还是在linux下没找到合适的gui的调整工具. 几番 ...
- zw版【转发·台湾nvp系列Delphi例程】HALCON SetLineStyle1
zw版[转发·台湾nvp系列Delphi例程]HALCON SetLineStyle1 procedure TForm1.Button1Click(Sender: TObject);var img : ...
- 【fedora】强制解除yum锁定
运行yum makecache时出现yum update时候出现Another app is currently holding the yum lock解决方法yum被锁定了. 可以通过执行 rm ...
- MyEcplise中关于部署文件不成功的问题
MyEclipse 点击 部署 按钮 无效 正常情况下,当我们点击MyEclipse任务栏上的部署按钮时,会弹出项目部署框,如下图: 但我们有时也会遇到点击部署按钮怎么也弹不出项目部署框的 ...
- Linux workqueue工作原理 【转】
转自:http://blog.chinaunix.net/uid-21977330-id-3754719.html 转自:http://bgutech.blog.163.com/blog/static ...
- linux信号机制 - 用户堆栈和内核堆栈的变化【转】
转自:http://itindex.net/detail/16418-linux-%E4%BF%A1%E5%8F%B7-%E5%A0%86%E6%A0%88 此文只简单分析发送信号给用户程序后,用户堆 ...
- Oracle将表keep到内存
一.引言: 有时候一些基础表需要非常的频繁访问,尤其是在一些循环中,对该表中的访问速度将变的非常重要.为了提高系统的处理性能,可以考虑将一些表及索引读取并保存到内存中. 二.关于keep内存的几个参数 ...
- iOS:UITableView 方法 属性
参考:https://developer.apple.com/library/iOS/documentation/UIKit/Reference/UITableView_Class/Reference ...
- SQL编程之高级查询(子查询)以及注意事项
SQL编程之高级查询(子查询)以及注意事项 1.什么是子查询? 当一个查询是另一个查询的条件时,称之为子查询.子查询可以使用几个简单命令构造功能强大的复合命令.子查询最常用于SELECT-SQL命 ...