示例1:

关于事件对象

MSIE:window.event,  cancelBubble,  returnValue,  srcElement, button(鼠标按键,1,4,2,左中右)

W3C:event,  stopPropagation(),  preventDefault(),  target,  button(鼠标按键,0,1,2,左中右)

示例2:

得到页面中某点坐标

示例代码:

function getPointInPage(eventObject) {
            eventObject = eventObject || getEventObject(eventObject);
            var w3cDom = document.documentElement;
            return {
                'x': eventObject.pageX || (eventObject.clientX + w3cDom.scrollLeft) || document.body.scrollLeft,
                'y': eventObject.pageY || (eventObject.clientY + w3cDom.scrollTop) || doucument.body.scrollTop
            };
        }

示例3:

将连字符型字符串变为驼峰型字符串

  示例代码:

function camelize(str) {
            return str.replace(/\-(\w)/g, function (allMathches, part1) {
                return part1.toUpperCase();
            });
        }

alert(camelize('s-a-ad-ee'));

=>  sAAdEe

示例4:

  将驼峰型字符串变为连字符型字符串

  示例代码:

function unCamelize(str) {
            return str.replace(/([A-Z])/g, function (allMathes, part1) {
                return '-' + part1.toLowerCase();
            });
        }      

示例5:

得到节点类名

示例代码:

String.prototype.trim = function () {
            return this.replace(/^\s+|\s+$/g, '');
        };
        function getClassName(element){
            return element.className.replace(/\s+/g, ' ').trim().split(' ');
        }
        var arr = getClassName(document.getElementById('ceshi'));
        for (var i = 0; i < arr.length; i++) {
            console.log(arr[i]);
        }

示例6:

  判定某节点是否含有某类名

  示例代码:

function hasClassName (element, className) {
            if (!(element = $(element))) {
                return false;
            }
            var classArr = getClassName(element);
            for (var i = 0; i < classArr.length; i++) {
                if (classArr[i] === className) {
                    return true;
                }
            }
            return false;
        }

示例7:

  关于值传递,共享对象

  示例代码:

var arr = [3, 5, 55, 25];
        var len = arr.length;
        alert(arr.length);
        arr.splice(1, 1);
        alert(arr.length);
        alert(len);

   =>  4

   =>  3

   =>  4

示例8:

  增加类名

  示例代码:

function addClassName(element, className) {
            if (!(element = $(element))) {
                return false;
            }
            if (element.className) {
                element.className += (element.className ? ' ' : '') + className;
            }
            return true;
        }

示例9:

  删除类名

  示例代码:

function removeClassName(element, className) {
            if (!(element = $(element))) {
                return false;
            }
            var classArr = getClassName(element);
            var len = classArr.length;
            for (var i = (len - 1), i >= 0; i--) {
                if (classArr[i] === className) {
                    arr.splice(i, 1);
                }
            }
            return (len === arr.length) ? false : true;
        } 

示例10

  设置节点样式

  示例代码:

function setStyle(element, styles) {
            if (!(element = $(element))) {
                return false;
            }
            for (property in styles) {
                if (styles.hasOwnProperty(property)) {
                    if (element.style.setProperty) {
                        element.style.setProperty(unCamelize(property), styles[property], null);  //第三个参数,设置优先级
                    } else {
                        element.style[camelize(property)] = styles[property];
                    }
                }
            }
        }

示例11

  获得节点某样式

  示例代码:

function getStyle(element, property) {
            if (!(element = $(element))) {
                return false;
            }
            var value = element.style[camelize(poperty)];
            if (!value) {
                if (document.defaultView && document.defaultView.getComputedStyle) {
                    var css = document.defaultView.getComputedStyle(element, null);  //第二个参数代表伪类
                    value = (css ? css.getPropertyValue(property) :null);
                } else if (element.currentStyle) {
                    value = element.currentStyle[camelize(property)];
                }
            }
            return value === 'auto' ? '' : value;
        }

  

 

2015-02-08——js笔记的更多相关文章

  1. 02: vue.js常用指令

    目录:Vue其他篇 01: vue.js安装 02: vue.js常用指令 目录: 1.1 vuejs简介 1.2 选择器:根据id.class等查找 1.3 静态绑定数据 data 1.4 插值 { ...

  2. Data Visualization and D3.js 笔记(1)

    课程地址: https://classroom.udacity.com/courses/ud507 什么是数据可视化? 高效传达一个故事/概念,探索数据的pattern 通过颜色.尺寸.形式在视觉上表 ...

  3. js笔记-0

    #js笔记-0 数组: indexOf方法: Array也可以通过indexOf()来搜索一个指定的元素的位置: var arr = [10, 20, '30', 'xyz']; arr.indexO ...

  4. Storm(2015.08.12笔记)

    2015.08.12Storm   一.Storm简介 Storm是Twitter开源的一个类似于Hadoop的实时数据处理框架.   Storm能实现高频数据和大规模数据的实时处理. 官网资料显示s ...

  5. Zookepper(2015.08.16笔记)

    2015.08.16zookepper   Zookeeper 是 Google 的 Chubby一个开源的实现,是 Hadoop 的分布式协调服务(如同小区里面的供水.电的系统) 它包含一个简单的原 ...

  6. Node.js 笔记02

    一.关于命令 常用命令: dir 列出当前目录下面所有的文件 cd 目录名 进入到指定的目录,. 当前目录, .. 进入上级目录,cd . 当前目录, cd .. 上级目录 md 目录名 创建文件夹 ...

  7. 2015年10月23日JS笔记

    ECMAScript标准:JavaScript核心语法 微软:Jscript ECMAScript标准:一纸空文 JavaScript和JScritp都号称完全实现了 ECMAScript标准 W3C ...

  8. JS笔记—02

    1.String截取:substr:截几位, substring:截到哪. 2.String的操作,例如变大写,小写,本身不会变,只是在栈里交换引用似的 var str = "hello w ...

  9. iOS 学习笔记 二 (2015.02.26)

    How To Use Git Source Control with Xcode in iOS 6 If you're new here, you may want to subscribe to m ...

  10. iOS 学习笔记 一 (2015.02.05)

    一:Xcode6输入框设置为 keyboard type设置为Number Pad弹不出键盘的解决办法   问题:Can't find keyplane that supports type 4 fo ...

随机推荐

  1. VirtualBox实现宿主机和虚拟机之间网络的通讯

    摘要:实现宿主机和虚拟机之间网络的通讯 环境: 宿主机操作系统            WindowsXP 虚拟机软件                    VirtualBox 虚拟机操作系统     ...

  2. 云解析DNS使用教程

    云解析(Domain. Name System,简称DNS)是一种高可用性.高可扩展的权威DNS服务和DNS管理服务.它的目的是为企业和开发者提供稳定.安全.智能的把网站域名或应用资源转换为计算机用于 ...

  3. oracle的一些问题

    好久时间没有用oracle,这次因为有个项目的需要,又重新温习了一下oracle. 我使用的oracle的版本是windows oracle 11g_R2. 首先先说一下安装.这个没有太大的问题,主要 ...

  4. 283. Move Zeroes【easy】

    283. Move Zeroes[easy] Given an array nums, write a function to move all 0's to the end of it while ...

  5. 【问题记录】MySQL中时间戳转日期格式和Java中时间戳转日期格式偶尔不一致

    背景: MySQL的某个字段存放着一些时间戳格式的时间. 问题描述: Java程序将MySQL中的时间戳字段取出来,在Java程序中转成yyyy-MM-dd HH:mm:ss格式的时候,偶尔会出现转化 ...

  6. 【转】SQL SERVER 2005 数据库状态为“可疑”的解决方法

    --MyDB为修复的数据名 USE MASTER GO SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE GO ALTER DATABA ...

  7. start-stop-daemon

    start-stop-daemon是OpenRC计划的一部分,这个程序最先出现在Debian系的Linux发行版中,这里有个比较古老的手册页面,更详细更直观的办法当然是通过man start-stop ...

  8. VMware虚拟机 Ubuntu 实用技巧 (1) -- 安装VMware Tool

    1.用VM安装Ubuntu后屏幕太小? 2.Ubuntu中的文本与window中的文本不能互相复制黏贴? 如果你遇到以上问题,可以通过在VMware里安装“VMware Tool”插件解决!! 安装步 ...

  9. 挑战:万能的slash! 判断js中“/”是正则、除号、注释?

    很久以前在其它地方就探讨和关注过这个问题,但都没有满意的解答. 看了zjfeihu 的帖子: <前端代码加亮插件(html,jss,css),支持即时加亮,运行代码>,再次提出这个比较经典 ...

  10. Eclipse中关于JRE System Library、Web App Libraries的疑惑

    当我们在Eclipse中建立java的web工程时,会产生JRE System Library和Referenced Libraries,Web App Libraries不生成,下面会 简要说明一下 ...