获取样式函数封装

  1. function getStyle(ele,attr){
  2. if(ele.currentStyle){
  3. return ele.currentStyle[attr];
  4. }
  5. else{
  6. return window.getComputedStyle(ele,null)[attr];
  7. }
  8. };

getClass()封装

  1. function getClass(element, names){
  2. //如果存在getElementsByClassName()方法,则直接获取元素。
  3. if(document.getElementsByClassName){
  4. return element.getElementsByClassName(names);
  5. }
  6. var list = [];
  7. //获取所在元素区域内所有子元素
  8. var doms = element.getElementsByTagName('*');
  9. //处理传入的类名参数
  10. var namesList = myTrim(names);
  11. var namesArr = namesList.split(' ');
  12.  
  13. for(var i = 0; i < doms.length; i++){
  14. var flag = true;
  15. //处理子元素类名
  16. var str = myTrim(doms[i].className);
  17. var arr = str.split(' ');
  18. for(var j = 0; j < namesArr.length; j++){
  19. //如果存在一个传入的类名参数的值在子元素类名中不存在,则标志位变为false。
  20. if(arr.indexOf(namesArr[j]) == -1){
  21. flag = false;
  22. }
  23. }
  24. //若标志位始终为true,则把该子元素加入到数组中;
  25. if(flag){
  26. list.push(doms[i]);
  27. }
  28. }
  29. return list;
  30. };
  31.  
  32. //去除字符串两侧的空格,且把当中的多个空格合并成一个。
  33. function myTrim(str){
  34. var str1 = str.replace(/(^\s*)/g,'');
  35. var str2 = str1.replace(/(\s*$)/g,'');
  36. var str3 = str2.replace(/(\s+)/g,' ');
  37. return str3;
  38. };

仿jQuery $()获取元素

  1. //仿jQuery $()获取元素
  2. function $(str){
  3. var s = str.charAt(0);
  4. var ss = str.substr(1);
  5. switch(s) {
  6. case '#':
  7. return document.getElementById(ss);
  8. break;
  9. case '.':
  10. return getClass(document,ss);
  11. break;
  12. default:
  13. return document.getElementsByTagName(str);
  14. }
  15. }

 获取屏幕宽度兼容封装

  1. function window_width(){
  2. if(window.innerWidth != null){
  3. return window.innerWidth;
  4. }
  5. else if(document.compatMode === 'CSS1Compat'){
  6. return document.documentElement.clientWidth;
  7. }
  8. return document.body.clientWidth;
  9. }

  

【前端学习笔记】JavaScript 常用方法兼容性封装的更多相关文章

  1. 前端学习笔记-JavaScript

    js引入方式: 1.嵌入js的方式:直接在页内的script标签内书写js功能代码. <script type="text/javascript">alert('hel ...

  2. 【前端】Web前端学习笔记【1】

    ... [2015.12.02-2016.02.22]期间的学习笔记. 相关博客: Web前端学习笔记[2] 1. JS中的: (1)continue 语句 (带有或不带标签引用)只能用在循环中. ( ...

  3. 【前端】Web前端学习笔记【2】

    [2016.02.22至今]的学习笔记. 相关博客: Web前端学习笔记[1] 1. this在 JavaScript 中主要有以下五种使用场景 在全局函数调用中,this 绑定全局对象,浏览器环境全 ...

  4. Web前端学习笔记(001)

    ....编号    ........类别    ............条目  ................明细....................时间 一.Web前端学习笔记         ...

  5. web前端学习笔记

    web前端学习笔记(CSS盒子的定位) 相对定位 使用相对定位的盒子的位置常以标准流的排版方式为基础,然后使盒子相对于它在原本的标准位置偏移指定的距离.相对定位的盒子仍在标准流中,它后面的盒子仍以标准 ...

  6. 学习笔记---Javascript事件Event、IE浏览器下的拖拽效果

    学习笔记---Javascript事件Event.IE浏览器下的拖拽效果     1. 关于event常用属性有returnValue(是否允许事件处理继续进行, false为停止继续操作).srcE ...

  7. 前端学习笔记之JavaScript

    JavaScript概述 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中),后将其改名ScriptEase(客 ...

  8. [JS学习笔记]Javascript事件阶段:捕获、目标、冒泡

    当你在浏览器上点击一个按钮时,点击的事件不仅仅发生在按钮上,同时点击的还有这个按钮的容器元素,甚至也点击了整个页面. 事件流 事件流描述了从页面接收事件的顺序,但在浏览器发展到第四代时,浏览器开发团队 ...

  9. HTML 学习笔记 JavaScript(面向对象)

    现在让我们继续跟着大神的脚步前进 学习一下JavaScript中的面向对象的思想,其实作为一个iOS开发者,对面向对象还是比较熟悉的,但是昨晚看了一下Js中的面向对象,妈蛋 一脸萌比啊.还好有大神.让 ...

随机推荐

  1. 20155213 实验一《Java开发环境的熟悉》实验报告

    20155213 实验一<Java开发环境的熟悉>实验报告 一. 实验内容及步骤 (一)使用JDK编译.运行简单的java程序 命令行下的程序开发 输入cd Code进入Code文件夹里 ...

  2. 20155217 实验二 Java面向对象程序设计 实验报告

    20155217 实验二 Java面向对象程序设计 实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模 ...

  3. 20155336 2016-2017-2《JAVA程序设计》第一周学习总结

    # 20155336  2016-2017-2<JAVA程序设计>第1周学习总结 ## 教材学习内容总结 开学的第一周,带着些许的欣喜和好奇,听完了老师的第一堂课.说心里话学习JAVA仿佛 ...

  4. POI导出excel文件样式

    需求: 公司业务和银行挂钩,各种形式的数据之间交互性比较强,这就涉及到了存储形式之间的转换 比如数据库数据与excel文件之间的转换 解决: 我目前使用过的是POI转换数据库和文件之间的数据,下边上代 ...

  5. 【LG4091】[HEOI2016/TJOI2016]求和

    [LG4091][HEOI2016/TJOI2016]求和 题面 要你求: \[ \sum_{i=0}^n\sum_{j=0}^iS(i,j)*2^j*j! \] 其中\(S\)表示第二类斯特林数,\ ...

  6. MySQL主从失败报错误: Got fatal error 1236

    一.问题原因及报错误信息 由于MySQL主库意外重启,导致从库无法同步报错如下: 登录从库查看主从同步的错误信息 [root@--- mysql]# vim mysqld-error.log -- : ...

  7. spark读取mongodb数据写入hive表中

    一 环境: spark-: hive-; scala-; hadoop--cdh-; jdk-1.8; mongodb-2.4.10; 二.数据情况: MongoDB数据格式{    "_i ...

  8. 一个经典的PHP加密解密算法authcode

    项目中有时我们需要使用PHP将特定的信息进行加密,也就是通过加密算法生成一个加密字符串,这个加密后的字符串可以通过解密算法进行解密,便于程序对解密后的信息进行处理.最常见的应用在用户登录以及一些API ...

  9. MAVEN相关文章

    Maven入门指南① :Maven 快速入门及简单使用 Maven入门指南② :Maven 常用命令,手动创建第一个 Maven 项目 Maven入门指南③:坐标和依赖 Maven入门指南④:仓库 M ...

  10. python基本数据类型2

    python_day_4 今日大纲: 1. list(增删改查) 列表可以装大量的数据. 不限制数据类型. 表示方式:[] 方括号中的每一项用逗号隔开 列表和字符串一样.也有索引和切片 常用的功能: ...