获取类名的兼容函数

//obj.getElementsByClassName   只能在现代浏览器中使用,不能在IE8以下使用
//两个参数 classname 类名 obj 范围
function getClass(classname,obj){
obj=obj||document;
if(obj.getElementsByClassName){
return obj.getElementsByClassName(classname);// 检测出能在现代浏览器中使用
}else{//在IE8及以下怎么办,获取所有的标签名
var arr=[];
var objs=obj.getElementsByTagName("*");//声明所有的标签用*
for (var i = 0; i < objs.length; i++) {//进行遍历
// if(objs.className==classname){//基本情况
if(checkClass(obj[i].className,classname)){
arr.push(objs[i]);
}
}
return arr;
}
}
//box xi sh 题中有的 用变量classname
//xi val 要找的类名 用变量val
function checkClass(classname,val){
var arr1=obj.split(" ");
for (var i = 0; i < arr1.length; i++) {
if(arr1[i]==val){
return 1;
}
}
return 0;
}

检测结果显示

 <div class="box one"></div>
<div class="one"></div>
var one=getClass("one");
console.log(one.length);

将函数进行封装

//我们的目的是  div   .box  #box
//最后我们要用到$("div") $(".box") $("#box") function(){}
//两个参数 selector 就是div .box #box obj是范围
function $(selector,obj){
var obj=obj||document;
if(typeof selector=="string"){
selector=selector.replace(/^\s*|\s*$/g,"");
if(selector.charAt(0)=="."){
return getClass(selector.slice(1),obj);
}else if(selector.charAt(0)=="#"){
return document.getElementById(selector.slice(1));
}else if(/^[a-zA-Z][a-zA-Z0-8]{0,8}$/.test(selector)){
return obj.getElementsByTagName(selector);
}
}else if(typeof selector=="function"){
window.onload=function(){
selector();
} }
}

检测结果

<div class="box one"></div>
<div id="one"></div>
<div class="one"></div>
<div class="one"></div>
<div class="one"></div>
var one=getClass("one");
console.log(one.length);
var one=$("#one");
console.log(one);
var one1=$(".one");
console.log(one.length);
var one2=$("div");
console.log(one2.length);

获取样式的兼容函数

//obj.currentStyle()   ie
//getComputedStyle() w3c
// 两个参数 obj对象 pro 具体的属性
function getStyle(obj,pro){
if(obj.currentStyle){
return obj.currentStyle[pro];
}else {
return getComputedStyle(obj,null)[pro];
}
}

检测结果

<div class="one"></div>
<div id="one"></div>
<div class="one"></div>
<div class="one"></div>
<div class="one"></div>
.one{
width:200px;
height: 200px;
background: red;
}
var one=$(".one")[0];
console.log(parseInt(getStyle(one,"width")));

JS的兼容函数的更多相关文章

  1. 关于js的兼容问题(小办法)!

    今天整理了一下浏览器对JS的兼容问题,希望能给你们带来帮助,我没想到的地方请留言给我,我再加上: 常遇到的关于浏览器的宽高问题: //以下均可console.log()实验 var winW=docu ...

  2. js中getByClass()函数

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

  3. JS中的函数、Bom、DOM及JS事件

    本期博主给大家带来JS的函数.Bom.DOM操作,以及JS各种常用的数据类型的相关知识,同时,这也是JavaScript极其重要的部分,博主将详细介绍各种属性的用法和方法. 一.JS中的函数 [函数的 ...

  4. js事件兼容处理

    js封装事件处理函数,兼容ie,支持事件代理 var eventUtil = { bindEvent: function(el, type, target, callback, popgation) ...

  5. js基础 js自执行函数、调用递归函数、圆括号运算符、函数声明的提升 js 布尔值 ASP.NET MVC中设置跨域

    js基础 目录 javascript基础 ESMAScript数据类型 DOM JS常用方法 回到顶部 javascript基础 常说的js包括三个部分:dom(文档document).bom(浏览器 ...

  6. JS常用自定义函数总结

    JS常用自定义函数总结   1.原生JavaScript实现字符串长度截取 2.原生JavaScript获取域名主机 3.原生JavaScript清除空格 4.原生JavaScript替换全部 5.原 ...

  7. js 浏览器兼容问题及解决办法

    JS中出现的兼容性问题的总结 1.关于获取行外样式 currentStyle 和 getComputedStyle 出现的兼容性问题  我们都知道js通过style不可以获取行外样式,当我们需要获取行 ...

  8. Node.js 教程 06 - 函数

    前言: 本篇介绍的是Node.js中的函数,相对于上一篇会简单一点,其实和我们Javascript中的function无异. 好了,废话不多说了,我们进入正题吧. Node.js函数: [示例1:创建 ...

  9. 关于js的回调函数的一点看法

    算了一下又有好几个月没写博客了,最近在忙公司android的项目,所以也就很少抽时间来写些东西了.刚闲下来,我就翻了翻之前看的东西.做了android之后更加感觉到手机端开发的重要性,现在做nativ ...

随机推荐

  1. pt-archiver使用

    pt-archiver工具其实就是用来清理,归档数据用的 一.归档前的准备需要配置client字符集为utf-8,如果你用了utf-8的编码,防止归档数据为乱码[client]default-char ...

  2. 准备上线,切换到master分支,报错

    切换到master分支,准备上线,把上次上线sourceTree保存的修改拉出来: 运行,报错了: stackOverflow一搜说要删除旧的: 我show in finder 把他删了,然后双击安装 ...

  3. P1220 关路灯

    #include <bits/stdc++.h> using namespace std; int d[100], w[100], s, n; int dp[100][100][3]; i ...

  4. 总结Lvs、nginx、Haproxy

    !!!! 参考的比较多,自己想法少 大神总结的比较好 ====>http://www.ha97.com/5646.html 特性  LVs Nginx Haproxy 工作层 四层(传输层) 七 ...

  5. Eclipse汉化后切换回英文

    方法: 1.复制MyEclipse的快捷方式: 2.右键快捷方式->属性,在“目标”的后边加上 -nl "en" 之前的:"F:\Program Files\MyE ...

  6. SEO

    白帽SEO 内容优化 网站标题.关键字.描述 网站内容优化 Robot.txt文件 网站地图 增加外链引用 2. 网站结构布局优化 网站加载速度:一个页面<100k 扁平化:网站 目录层次 少, ...

  7. VS2013自带的Browser Link功能引发浏览localhost网站时不停的轮询

    浏览localhost网站时候不管你打开那个页面它都会不停的轮询.据悉这是VS2013自带的Browser Link功能,里面用到SignalR机制 什么是Browser Link功能,什么是Sign ...

  8. 使用Django建立网站

    # django-admin startproject csvt01 # cd csvt01 # django-admin startapp blog # vim csvt01/settings.py ...

  9. Linux 下应用程序最大打开文件数的理解和修改

    运行在Linux系统上的Java程序运行了一段时间后出现"Too many open files"的异常情况. 这种情况常见于高并发访问文件系统,多线程网络连接等场景.程序经常访问 ...

  10. SpringMVC常用配置-处理程序异常以及404错误