javascript学习笔记_1
1、JSON的遍历
for(var i in json){
alert(json[i];
}
2、arguments 可以理解为是一个数组,并且建有json的部分能力
css(obj,attr,value){
obj.attr = value;
}
3、字符串的单字符获取方法
str.charAt(index); // 兼容全部浏览器
str[index]; // 低版本浏览器不兼容
附记:
1、获取元素在样式表中定义的属性值
var getStyle = function(node, property){
if (node.style[property]) {
return node.style[property];
}
else if (node.currentStyle) {
return node.currentStyle[property];
}
else if (document.defaultView && document.defaultView.getComputedStyle){
var style = document.defaultView.getComputedStyle(node, null);
return style.getPropertyValue(property);
}
return null;
};
2、常用JS工具
var utils = {
// 创建固定ID的标签
createE:function(nodeName,id){var newEl = document.createElement(nodeName);if(id&&id!==""&&!document.getElementById(id)){newEl.id = id;}return newEl;},
// 根据class Name获取元素集合
getByC:function(className){return document.getElementsByClassName(className);},
// 根据ID获取标签
getById:function(id){return document.getElementById(id);},
// 根据DOM对象和属性名获取属性值,解决获取样式时的兼容问题,
// 兼容各种浏览器和行间样式与CSS样式
getStyle:function(el,name){
var stl = '';
try{
stl = el.style[name];
if(stl==''){throw false;}
}catch(e){
try{
stl = el.currentStyle[name];
}catch(e1){
try{
stl = window.getComputedStyle(el,null)[name];
}catch(e2){
}
}
}finally{
return stl;
}
},
// 渐变效果,通常用于width\height\left\right\top\bottom等
huadong:function(el,name,target,timer){var old=utils.getStyle(el,name);if(!el||!name||!target||!/^-?\d+/.test(target)||!/^-?\d+/.test(old)){return;}
clearInterval(timer);var o=parseInt(old),t=parseInt(target),c=t-o,step=c>0?2:c<0?-2:0;timer=window.setInterval(function(){o+=step;utils.setStyle(el,name,o+'px');if((c>0&&o>=t)||(c<=0&&o<=t)){clearInterval(timer);}},10);},
};
3、小工具:
获取鼠标点击的“目标对象”:event.target, IE下为event.srcElement
示例代码:
<html>
<head>
<script type="text/javascript">
function whichElement(e) // 获取鼠标点击对象的方法
{
var targ
if (!e) var e = window.event // 如果e不存在
if (e.target) targ = e.target // 事件目标节点(不兼容IE)
else if (e.srcElement) targ = e.srcElement // IE下为event
if (targ.nodeType == 3) // 当点击了文本节点Text
targ = targ.parentNode // 文本节点的父节点
var tname
tname=targ.tagName // 元素类型
alert("You clicked on a " + tname + " element.")
/* 简写:
e = e ? e : window.event;var targ = e.target ? e.target : e.srcElement ? e.srcElement : null;targ = targ.nodeType == 3 ? targ.parentNode:targ;
*/
}
</script>
</head>
<body onmousedown="whichElement(event)">
<p>在文档中点击某个位置。消息框会提示出您所点击的标签的名称。</p>
<h3>这是标题</h3>
<p>这是段落。</p>
<img src="/i/eg_mouse2.jpg" />
</body>
</html>
4、延伸扩展:如何判断当前浏览器是什么浏览器?
简而言之,每个浏览器的独有属性的一个罗列:
总所周知:当下比较常用的有Firefox(火狐浏览器)、Opera(欧鹏浏览器)、Safari(苹果公司的网络浏览器)、
Chrome(谷歌浏览器);下面一一对各个浏览器相对独有的特性进行一个描述(暂时不谈论内核的差距,主要是从相关函数进行分析)。
Firefox中的DOM元素都有一个getBoxObjectFor函数,用来获取该DOM元素的位置和大小
IE对应的中是getBoundingClientRect函数)。这是Firefox独有的,判断它即可知道是当前浏览器是Firefox。
Opera提供了专门的浏览器标志,就是window.opera属性。
Safari浏览器中有一个其他浏览器没有的openDatabase函数,可做为判断Safari的标志。
Chrome有一个MessageEvent函数,但Firefox也有。不过,好在Chrome并没有Firefox的getBoxObjectFor函数,
根据这个条件还是可以准确判断出Chrome浏览器的。
javascript学习笔记_1的更多相关文章
- Java程序猿的JavaScript学习笔记(汇总文件夹)
最终完结了,历时半个月. 内容包含: JavaScript面向对象特性分析,JavaScript高手必经之路. jQuery源代码级解析. jQuery EasyUI源代码级解析. Java程序猿的J ...
- Java程序猿的JavaScript学习笔记(8——jQuery选择器)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- Java程序猿JavaScript学习笔记(2——复制和继承财产)
计划和完成在这个例子中,音符的以下序列: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaSc ...
- Java程序猿的JavaScript学习笔记(3——this/call/apply)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- Java程序猿JavaScript学习笔记(4——关闭/getter/setter)
计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...
- Java程序猿JavaScript学习笔记(14——扩大jQuery UI)
计划和完成这个例子中,音符的顺序如下: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScr ...
- javascript学习笔记(四) Number 数字类型
数字格式化方法toFixed().toExponential().toPrecision(),三个方法都四舍五入 toFixed() 方法指定小数位个数 toExponential() 方法 用科学 ...
- JavaScript学习笔记之数组(二)
JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为什么? ['1','2','3'].map(parseInt)//[1,NaN,NaN ...
- JavaScript学习笔记[0]
JavaScript学习笔记[0] 使用的是廖雪峰JavaScript教程. 数据类型 Number 表示数字,不区分浮点整形. === 比较时不转化数据类型. == 反之. NaN与任何值都不想等, ...
随机推荐
- Spring之bean的生命周期
这篇博文是spring生命周期的详解,目前限于作者自身的水平对于一些内容可能只知其然不知其所以然,所以博文中如果出现错误欢迎各位指出,同时我也会逐步提升自己的水平,争取能够多发布一些能让大家获益的博文 ...
- CentOS7攻克日记(三) —— 安装Python3.6
我是在EVERNOTE上面写的,本来格式是有代码段的,结果复制上来就没有了,所以会有一点乱,我就不调整了 我主要安装的是python环境,这一篇主要解决一下python的问题.在这里给个建议,安装 ...
- PHP 获取当前访问的完整URL
代码如下: <?php // php 获取当前访问的完整url function GetCurUrl() { $url = 'http://'; if(isset($_SERVER['HTTPS ...
- vue ui 启动,浏览器报错Unexpected token <
可能的解决办法: 选择清空缓存并硬性重新加载页面. 如果不行,全局卸载@vue/cli,重新安装.
- Getting a handle on
Getting a handle on 丑闻处理 Corporate crises drive the media and politicians wild.But do they damage sh ...
- 技巧 筛1~n的所有因子
从 i : 1~n, 是i的倍数, 则计入该数 复杂度 n*(1/1+1/2+1/3+...1/n)=nlogn ll d[N]; // 计每个数的因子数 set<ll> s[N]; // ...
- python 学习笔记 2 ----> dive into python 3
Python Shell idle的使用 >>> >>>help() ----> help> 可以在help这个工具中查找Python内置函数的文档等等 ...
- mysql查表的时候报错:java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timest
在spark项目中读取mysql中的数据的时候,发生了报错: 原因:主要是因为数据库中有一些字段为null,无法进行转换: 上面字段那种,我的inserttime字段类型为timestamp类型,不为 ...
- Vue项目使用bootstrap
①npm install boostrap@4.0.0 --save @4.0.0为版本号 ②在项目的main.js中添加 import 'bootstrap/dist/css/bootstrap.m ...
- LDA(线性判别分类器)学习笔记
Linear Discriminant Analysis(线性判别分类器)是对费舍尔的线性鉴别方法(FLD)的归纳,属于监督学习的方法. LDA的基本思想是将高维的模式样本投影到最佳鉴别矢量空间,以达 ...