摘要: 正则表达式一般用于描述一个复杂字符串的组成规则。比如我们平常指定一个电话号码时,可以用许多种方式来表示:1)区号可以是3位或4位2)区号可以加上(),如:(010)3)区号和电话号之间可以用 - 分隔,也可以不分隔4)后面的电话号可以是7位或8位5)不能包含上面提到的其它符号具体的例子有:0739 - 8711100 或 07398711100 或(0739)8711100或(0739)-8711100……等等!当我们需要检测某个电话号码的格式是否正确时,我们就应该遵循上面的规则进行判断。上面的这些规则如果我们用程序来做检测也是可以的只要你愿意用那些复杂的方式。但如果使用正则表达式来定义其规则 阅读全文
posted @ 2011-04-06 14:54 北磬 阅读(1067) 评论(2) 推荐(0) 编辑
摘要: 做前端,事件绑定是一个关键!全球比较有名的事件绑定程序也比较多,而且在网络广为流传。也不得不承认那些程序是写的不错。今天我自己也写了一个,就目前形式来看,它具有以下特点:1、同元素的同事件可以绑定多个函数。2、解决了this的问题,也是说在绑定函数体内的this指向的是元素。3、被绑定的那些函数总是按顺序执行的。4、简单容易理解,完全无视addEventListener和attachEvent之类的东西。5、在firefox、IE、opera、safari、chrome下工作良好下面是代码:function addEvent(obj, type, fn) { var func = obj[&# 阅读全文
posted @ 2011-04-05 23:04 北磬 阅读(1734) 评论(0) 推荐(3) 编辑
摘要: 在google.com.hk的左上角,有一个更多的链接,它具有一个目标地址,但是当我们点击时,大多数情况发现的是弹出一个下拉列表供用户选择(这是一种典型的渐进增强形式)。怎么理解?——如果用户的浏览器支持javascript,那么就可以享受到这种快速导航的服务功能。现在,请你禁用的你的浏览器的javascript功能(不会禁用猛击这里),再次访问google.com.hk,再次点击更多时,发生了什么?是的,没有看到下拉列表,而打开了一个新页面。(这是一种典型的平稳退化)。怎么理解?——如果用户的浏览器不支持javascript,用户仍然能够访问我的网站。如何实现类似google的这一功能?1 阅读全文
posted @ 2011-04-05 14:43 北磬 阅读(2177) 评论(5) 推荐(0) 编辑
摘要: 记录:function stopBubble( e ) { if(e && e.stopPropagation) { e.stopPropagation(); } //标准模式 else { window.event.cancelBubble = true; } //IE模式}问题:好像这阻止冒泡并不是很适用。转载请注明:转载自web前端开发 阅读全文
posted @ 2011-01-01 20:06 北磬 阅读(660) 评论(2) 推荐(0) 编辑
摘要: 在各大浏览器中,除Mozilla浏览器外,几乎都支持一个元素的属性:innerText。我们可以通过它来快速获取某个元素的内的文本。比如:<p id="test"><strong><font color="red">Hello</font> , world!</strong></p>我们使用代码:alert((document.getElementById("test")).innerText)在IE、Chrome中,均能获取到“Hello , world!”,但 阅读全文
posted @ 2010-12-31 19:13 北磬 阅读(995) 评论(2) 推荐(0) 编辑
摘要: 创建对象的三种方法方法一:var obj = new Object();obj.属性 = 值;//继续添加其它属性obj.方法 = function(参数) {//功能代码}//继续添加其它方法方法二:var obj = {属性:值 ,//继续添加其它属性 ,方法: function(参数) {功能代码} ,//继续添加其它方法}以上两种方法都是直接创建一个对象方法三://先定义对象的模型,也可以理解为类function obj(参数) {this.属性 = 值;//继续添加其它属性}obj.prototype.方法 = function(参数) {//功能代码....}//继续添加其它方法/ 阅读全文
posted @ 2010-12-30 15:42 北磬 阅读(738) 评论(2) 推荐(1) 编辑
摘要: 做为一个javascript新手,为了程式的简便,可能会在javascript中运用了大量的全局变量,虽然一时看来,问题解决了,而且也可能让编码变得更加的简单。但是从全局看来,这样会导致出现一些让我们难以掌控的情况的出现:变量同名、多个函数共用一个全局变量后的值的变换……等等。所以,有时候,对于一些简单的全局变量,我们可以通过另一种方式来处理——用自执行函数+闭包的方法来解:比如:我们要在网页加载时给出一个提示,在网页关闭时给出另一个提示下面的代码,实现了以上功能varmsg1 = "欢迎光临!"; // 定义一个全局变量var msg2 = "再见!" 阅读全文
posted @ 2010-12-30 14:08 北磬 阅读(2444) 评论(0) 推荐(0) 编辑
摘要: 在一般程序设计语言中,作用域是按块来划分的。即“变量定义在哪个块之内,这个块就是变量的有效范围”。而在javascript中,变量的作用域是按函数来划分的——变量在某个函数范围内有效。比如:var f = false;if(true) { var f = true; } //此时f位于if内,也就是块内,等价于还是全局范围内alert(f) //所以,结果为true再如下例:var f = false;function test() {  var f = true; //这是函数内定义的变量,只在函数内部有效,函数执行完毕后,该变量将被释放}test();alert(f) //结果为false 阅读全文
posted @ 2010-12-27 10:00 北磬 阅读(346) 评论(0) 推荐(0) 编辑
摘要: javascript对于变量的定义、类型的要求都比较松散,这样既方便,但又容易犯错。有时候进行必要的类型检查是必须的。常用检查变量类型的方法有两种,下面是解说:检查变量类型方法一:typeof格式:typeof 变量用法:if( typeof 变量 == "类型标识") { ... }下面是一些常用数据类型对应的typeof值:{an:"object"}      :    object["an","array"]      :    objectfunction() {}      :    function"a string"        :    string55            阅读全文
posted @ 2010-12-26 16:28 北磬 阅读(3800) 评论(0) 推荐(1) 编辑
摘要: 自执行函数:自动执行的函数。它在被解释时就已经在运行了。一般函数都是在被调用时才会执行的。自执行函数的一般格式:(function() { 函数体 })();而且,自执行函数中一般都会有一个function() {}形式的匿名函数。下面的代码在window对象中创建一个命名空间 mySpace,并把自执行函数中的方法封装在mySpace命名空间之下,以便于我们调用这个自执行函数中的一些功能。那么这种封装方式到底有何好处呢?当然就是保护了自执行函数内的方法、变量、属性等。这样代码更加安全了。如果不使用这种方法,那么,下面的方法也可以实现的。上面的代码和自执行函数实现的功能其实是一样的。比较之后, 阅读全文
posted @ 2010-12-25 15:07 北磬 阅读(1118) 评论(0) 推荐(0) 编辑
摘要: Javascript事件绑定的方法很多,很灵活。不过,作为比较简单的动态绑定,下面的代码看似正确,但得不到预期的效果下面是页面的dom结构下面是javascript代码为什么会出现上边的现像呢?原因是“for中的事件绑定并没有马上得到执行”。修改后的代码如下:测试代码,一切OK,我们正常的将循环变量i传到onclick事件对应的处理函数中。 阅读全文
posted @ 2010-12-24 19:16 北磬 阅读(5081) 评论(7) 推荐(2) 编辑

博客作者:北馨书生