JS的兼容函数
获取类名的兼容函数
//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的兼容函数的更多相关文章
- 关于js的兼容问题(小办法)!
今天整理了一下浏览器对JS的兼容问题,希望能给你们带来帮助,我没想到的地方请留言给我,我再加上: 常遇到的关于浏览器的宽高问题: //以下均可console.log()实验 var winW=docu ...
- js中getByClass()函数
js中getByClass()函数进化史 对于js来说,我想每一个刚接触它的人都应该会抱怨:为什么没有一个通过class来获取元素的方法.尽管现在高版本的浏览器已经支持getElementsByCla ...
- JS中的函数、Bom、DOM及JS事件
本期博主给大家带来JS的函数.Bom.DOM操作,以及JS各种常用的数据类型的相关知识,同时,这也是JavaScript极其重要的部分,博主将详细介绍各种属性的用法和方法. 一.JS中的函数 [函数的 ...
- js事件兼容处理
js封装事件处理函数,兼容ie,支持事件代理 var eventUtil = { bindEvent: function(el, type, target, callback, popgation) ...
- js基础 js自执行函数、调用递归函数、圆括号运算符、函数声明的提升 js 布尔值 ASP.NET MVC中设置跨域
js基础 目录 javascript基础 ESMAScript数据类型 DOM JS常用方法 回到顶部 javascript基础 常说的js包括三个部分:dom(文档document).bom(浏览器 ...
- JS常用自定义函数总结
JS常用自定义函数总结 1.原生JavaScript实现字符串长度截取 2.原生JavaScript获取域名主机 3.原生JavaScript清除空格 4.原生JavaScript替换全部 5.原 ...
- js 浏览器兼容问题及解决办法
JS中出现的兼容性问题的总结 1.关于获取行外样式 currentStyle 和 getComputedStyle 出现的兼容性问题 我们都知道js通过style不可以获取行外样式,当我们需要获取行 ...
- Node.js 教程 06 - 函数
前言: 本篇介绍的是Node.js中的函数,相对于上一篇会简单一点,其实和我们Javascript中的function无异. 好了,废话不多说了,我们进入正题吧. Node.js函数: [示例1:创建 ...
- 关于js的回调函数的一点看法
算了一下又有好几个月没写博客了,最近在忙公司android的项目,所以也就很少抽时间来写些东西了.刚闲下来,我就翻了翻之前看的东西.做了android之后更加感觉到手机端开发的重要性,现在做nativ ...
随机推荐
- 微信小程序wafer
1.Centos 重启nginx systemctl restart|stop|start|status nginx.service status是状态,可以看出nginx是否正在运行! system ...
- Memcache,Redis,MongoDB(数据缓存系统)方案对比与分析
mongodb和memcached不是一个范畴内的东西.mongodb是文档型的非关系型数据库,其优势在于查询功能比较强大,能存储海量数据.mongodb和memcached不存在谁替换谁的问题. 和 ...
- 月四 周2 iii
同样发生于今天 今天做的一道题引起了我对<电波女与青春男>的回忆 如果说光鸟鸟和电波女对我来说有什么共同之处, 那应该是体验过程我都很认真吧 我还是很喜欢入间人间的书, 不过那本妹主题的新 ...
- android 三步实现沉浸式 简单到无法想象
今天产品来看进度,说ios状态栏可以改颜色,以前竟然也没注意过,看了美团 ,扣扣的实现, 才注意到.着手开始做.网上借鉴了点 ,各种乱,整理了下 .希望可以帮到大家 . [转载请标明出处] 前提: ...
- JMeter学习-037-JMeter调试工具之四-BeanShell+jmeter.log
前面三篇文章分别讲述了 HTTP Mirror Server . Debug PostProcessor 和 Debug Samper 的脚本调试实例.此文主要讲述第四种调试方法,通过 BeanShe ...
- JAVASE02-Unit06: 文件操作——File 、 文件操作—— RandomAccessFile
Unit06: 文件操作--File . 文件操作-- RandomAccessFile java.io.FileFile的每一个实例是用来表示文件系统中的一个文件或目录 package day06; ...
- markdown命令语法
markDown作为一款很好用的文档编写工具,具体的用法如下: # Markdown syntax---**粗体***斜体****粗体加斜体*** > 引用>> 二级引用 # 一级标 ...
- Python基础三. 函数、lambda、filter、map、reduce
一.概述 函数, 就是用一些语句组织起来实现一组特定的功能, 用来重复调用. 函数的作用及意义:最大化的重用代码和最小化的代码冗余以及对流程的分解. Python中有哪些函数: 内建的函数 第三方模块 ...
- ARC 与非 ARC 之间那些的'祸害'
你是否也曾被 assign.retain.copy.release.autorelease.strong.__strong.weak.__weak.__unsafe__unretain.__autor ...
- 快速查找和你聊天人的IP和具体的物理所在地址
附言 : 对于中秋佳节没有回家也没有外出的我,亦然选择闭关.本来是打算把这个公众号作为测试号的.但是发现这个号已经有注册有一年多了,怪可惜的!所以就用来发些教程图文,供给大家共同学习,也对自己进行不定 ...