JavaScript Collection

javascript 里 这个for 的用法很经典啊

for(var m=n.firstchild; m!=null;m=m.nextSibling)

for(初始条件,跳出条件,改变条件)

//如果usrname 是null,undefined,0,""或NaN,它将被转换为false

if(!username)

then.....

函数其实是一个对象..

arguments数组的length属性指定了传递给该函数的实际参数数目

function对象的length属性确切地说明了一个函数声明的形式参数的个数.和artuments.length不同

function对象的length属性在函数体的内部和外部都有效.

//对象的构造函数(是因为加上了this关键字,它就由普通函数变成了 构造函数了吗?)

function ret(x,y)

{

this.X=x;

this.Y=y;

}

var R=new ret(5,3);

alert(R.X);

alert(R.Y);

通常来说HTML代码段里会有js代码段,反之亦然,而它们的字符串都可以用一对儿'或"括起来,而交叉使用则容易出错

所以,国际上一般是这样的,HTML中的字符串用",js中的用'

<a href="" onclick="alert('Thank you')">Click Me</a>

javaScript的数组不过是一种特殊对象,因此,for/in循环像枚举对象属性一样枚举数组下标

document对象的前景色,及链接的颜色,必须在Body被解析之前设定,也就是说,必须在<Head>部分里设定这些文档颜色,也可以将它们作为标记<body>的性质进行静态设置.除此之外,不能在别的地方设置这些属性.

唯一的例外 就是bgColor 它可以随时设置

//如果从外部站点链接,首先去主页

if(document.referer==""||document.referrer.indexOf('mysite.com")!=-1)

window.location="http://home.mysite.com";

对于重大安全问题的衡量,这种做法不合适,即:对于不支持JS的浏览器和禁用JS的用户来说,它不起作用

其实呀,对于DOm来说,用document.myform.具体某张图.src这种方式引用具体的元素(如图片),非常有必要啊,如果用[]的话,大点儿的页面的话,正常人是数不过来的!

//关于<select>元素

当用户选中或取消一个选项时,select 元素将触发它的onchange事件处理程序,对于"单选"型的select 元素,可读写的属性selectedindex用数字指定了当前被选中的选项.对于"多选"型的select元素,一个selectedindex属性不足以表示被选中的项的整个集合,在这种情况下,要确定选中了哪些选项,必须遍历options[]数组的所有元素,检查每个option对象的selected属性的值.

可以用getElementById()方法找到特定的元素,然后用getElementsByTagName()方法在那些特定标记中找到所有给定类型的后代,

//找到文档中特定的table元素,统计它的列数

var tableOfContents=document.getElementById('TOC');

var rows=tableOfContents.getElementsByTagName('tr');

var rowCounts=rows.length;

visibility 和display样式性质之间的区别在于,它们对非动态定们(是'位'吗)的元素的影响,对于出现在常规布局流中的元素(position性质值为static或relative).可以把visibility性质设为none,使元素不可见,但是会在文档布局中保留它的空间.这样的元素可以在不改变文档而已的情况下,反复隐藏或显示.但如果元素的display性质被设为none,就不会在文档布局中为它分配空间,它两边的元素都会靠拢,就像它不存在一样(在使用绝对定位和固定定位的元素时,visibility和display性质的效果一样,因为这些元素都不是文档布局的一部分).通常在使用动态定位元素时,可以使用visibility性质.在创建展开或折叠的大纲这样的元素时,用display元素比较有效.

注意,除非你想用JS动态地设置visibility和display性质,使元素在某种情况下可见,否则用它们使元素不可见就变得毫无意义

显式调用事件处理程序:

由于JS事件处理程序属性的值是函数,因此可以用JS直接调用事件处理函数.例如,如果我们使用标记<form>的性质onsubmit定义了一个表单验证函数,并想在用户提交表单之前的某个时刻验证表单,那么要以使用form对象的onsubmit属性来调用那个事件处理函数.代码如下:

document.myform.onsubmit();

但要注意,这种直接调用事件处理程序的方法不是模拟事件发生时的真正状况.例如,如果调用一个link对象的onclick方法,它并不能使浏览器根据那个链接把新的文档装载进来,而只能执行定义为那个属性值的函数.要使浏览器装载新的文档,还必须用第十三章的方法,设置window对象的location属性,同样,调用form对象的onsubmit方法或者调用submit对象的onclick方法都只能运行事件处理函数,而不能完成表单的提交(要真正提交表单还必须调用form对象的submit()方法);

事件处理程序的返回值:

通常,如果浏览器执行某种默认动作来响应一个事件,那么可以返回false阻止浏览器执行那个动作.除了onsubmit,其他通过返回false阻止执行默认动作的事件处理程序包括 onclick,onkeydown,onkeypress,onmousedown,onmouseup ,onreset. 关于返回false的规则有一个例外,即当用户把鼠标移到一个超链接(或图像)上时,浏览器的默认动作是在状态栏中显示链接的url.要阻止这种情况发生,必须让onmouseover事件处理程序返回true.例如,用下面的代码可以显示一条不是url的消息:

<a href="help" onmouseover="window.status='help';return true;">help</a>

posted @ 2011-10-12 06:55  Traveling light  阅读(1408)  评论(0编辑  收藏  举报