jquery几个的一些有用的小函数:
有了trim这个函数,遇到空格再也不用自己去实现一遍了
$.trim(str)
jQuery Code
Result:"hello, how are you?"
还在用冗长的脚本去判断当前的浏览器是什么吗?不用了,使用$.browser
$.browser 返回bool,包含的枚举值有 $.browser.safari, opera, msie, mozilla ,
操作数组的一些函数:
$.each和$().each很像,可以吧$.each()看成静态方法,而$().each则是实例方法,$.each()的用法如下:
比较有意思的是下面这种用法:
能把属性名i和属性值n打印出来,呵呵,多好的一门动态语言
$.grep() 熟悉linux的开发人员肯定喜欢这个函数,很清晰的用法:
可以吧$.map()和$.each做个比较,map有返回值,map的方向是根据一个数组的值得到另一个数组,而each你return了也不会有什么不同
$.merge()很有用的一个函数,尤其是你在做选择合并的时候
$.extend()这个函数很想一些语言里的类派生的关键字,也确实可以这么用,把这个函数用于对象复制也很好用:
Query Code
好好使用jquery提供的这些函数,确实能够给我们带来很大的方便,不要光把玩于一些效果类的插件,实用的才是最好的
有了trim这个函数,遇到空格再也不用自己去实现一遍了

$.trim(str)
jQuery Code
$.trim(" hello, how are you? ");
Result:"hello, how are you?"
还在用冗长的脚本去判断当前的浏览器是什么吗?不用了,使用$.browser
$.browser 返回bool,包含的枚举值有 $.browser.safari, opera, msie, mozilla ,
操作数组的一些函数:
$.each和$().each很像,可以吧$.each()看成静态方法,而$().each则是实例方法,$.each()的用法如下:
$.each( [0,1,2], function(i, n)
{ alert( "Item #" + i + ": " + n );});
{ alert( "Item #" + i + ": " + n );});
比较有意思的是下面这种用法:
$.each( { name: "John", lang: "JS" }, function(i, n)
{ alert( "Name: " + i + ", Value: " + n );});
{ alert( "Name: " + i + ", Value: " + n );});
能把属性名i和属性值n打印出来,呵呵,多好的一门动态语言
$.grep() 熟悉linux的开发人员肯定喜欢这个函数,很清晰的用法:
$.grep( [0,1,2], function(i){ return i > 0;});
可以吧$.map()和$.each做个比较,map有返回值,map的方向是根据一个数组的值得到另一个数组,而each你return了也不会有什么不同
$.map( [0,1,2], function(i)
{ return i + 4;});
{ return i + 4;});
$.merge()很有用的一个函数,尤其是你在做选择合并的时候
var array = [3,2,1];
$.merge( array, [4,3,2] )
$.merge( array, [4,3,2] )
$.extend()这个函数很想一些语言里的类派生的关键字,也确实可以这么用,把这个函数用于对象复制也很好用:
Query Code
var defaults = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
var settings = jQuery.extend({}, defaults, options);
//Result:
settings == { validate: true, limit: 5, name: "bar" }
var options = { validate: true, name: "bar" };
var settings = jQuery.extend({}, defaults, options);
//Result:
settings == { validate: true, limit: 5, name: "bar" }
好好使用jquery提供的这些函数,确实能够给我们带来很大的方便,不要光把玩于一些效果类的插件,实用的才是最好的
posted @ 2007-07-03 00:28 sharpedge 阅读(158) 评论(0) 编辑
方便地查阅jquery的相关函数可以访问http://visualjquery.com/1.1.2.html ,他的分类比较好,如图:

posted @ 2007-07-02 23:29 sharpedge 阅读(87) 评论(0) 编辑
使用jquery开发也有一段时间了,会了些皮毛。如何在实际工作中代替我们的一些工作,把好的特性用于实践,提高效率呢?今天花些时间把一些东西总结下
主要是比较在传统dom编程和jquery中我们的一些用法,以讨论更好的使用方式
在dom中插入一个新的页面元素,我们通常会:
var div = document.createElement("<div>");
div.innerHTML = "hello";
document.body.appendChild(div);
在jquery中就不用这么麻烦了
一行代码搞定:
$("<div>hello</div>").appendTo("body");
比较基本的也要说下,原来我也疏漏了些:
div.style.display=””; <==> $(div).show();
div.style.display=”none”; <==> $(div).hide();
div.sn = 1 <==> $(div). attr(“sn”,1);
div.style.backgroundColor=’red’ <==> $(div). css( "backgroundColor", "red" );
初始化:
document.body.onload = function(){alert(‘welcome’);};
<==>
$(function(){alert(‘welcome’);});
或者传统的 $(document).ready(function(){alert(‘welcome’);})
时间仓促,明天好好写
posted @ 2007-06-28 00:54 sharpedge 阅读(134) 评论(0) 编辑
相比较asp.net中的调试,rails提供的一些特性让我很是喜爱:
ruby script/console
这个脚本可以让应用加载到irb中,方便地测试rails代码,看到这个,我不禁构思起怎么实现个类似的东西给.net用
不需要response.write之类的方法,也不用自己去实现个序列化,rails里可以直接在页面上这样一下,输出标准的html,很是方便
<%=debug(@xxx) %>
ruby script/console
这个脚本可以让应用加载到irb中,方便地测试rails代码,看到这个,我不禁构思起怎么实现个类似的东西给.net用
不需要response.write之类的方法,也不用自己去实现个序列化,rails里可以直接在页面上这样一下,输出标准的html,很是方便
<%=debug(@xxx) %>
posted @ 2007-04-27 10:35 sharpedge 阅读(135) 评论(1) 编辑
在ruby第二章里面有一段话:
" This is pretty interesting and important, and so if you weren't
paying attention before, you should probably start now."
讲的就是yield这个关键字所传达的东西,这也是ruby比较有特色的一个地方
输入
def call_block
puts "Start of method"
yield
yield
puts "End of method"
end
call_block { puts "In the block" }
输出:
Start of method
In the block
In the block
End of method
对这个yield的用法,网上说法不一,有的说是占位符,有的说是"让路",有的说是宏
http://www.javaeye.com/topic/31752
http://axgle.javaeye.com/blog/31018
在我这个.net开发者看来,更愿意把他看成是个方法委托,用.net写,可以写成这样
输入
delegate outhandler();
void call_block(outhandler yield)
{
Console.WriteLIne("Start of method");
yield();
yield();
Console.WriteLIne("End of method");
}
void test(){Console.WriteLine("In the block"); }
//调用
call_block(test);
哈哈,上面的代码似乎要比ruby的冗余很多,但是也要严格很多,不知道我这样的分析对不对,不过还是不能完全代替,如果函数中定义一个变量:
def call_block
puts "Start of method"
@count=1
yield
yield
puts "End of method"
end
call_block { puts @count=@count+1 }
输出:
Start of method
2
3
End of method
也就是说这个代理要获得对上下文作用域的访问权,这在.net里恐怕实现不了,这就有点像一个宏了,甚至是代码织入,不过宏好像不能搞方法传递吧。因
此,ruby的yield还是很有特色,看看他使用的一些例子:
输入
[ 'cat', 'dog', 'horse' ].each {|name| print name, " " }
5.times { print "*" }
3.upto(6) {|i| print i }
('a'..'e').each {|char| print char }
输出:
cat dog horse *****3456abcde
嘿嘿,这些实现.net委托都可以搞定,给个函数指针...
" This is pretty interesting and important, and so if you weren't
paying attention before, you should probably start now."
讲的就是yield这个关键字所传达的东西,这也是ruby比较有特色的一个地方
输入
def call_block
puts "Start of method"
yield
yield
puts "End of method"
end
call_block { puts "In the block" }
输出:
Start of method
In the block
In the block
End of method
对这个yield的用法,网上说法不一,有的说是占位符,有的说是"让路",有的说是宏
http://www.javaeye.com/topic/31752
http://axgle.javaeye.com/blog/31018
在我这个.net开发者看来,更愿意把他看成是个方法委托,用.net写,可以写成这样
输入
delegate outhandler();
void call_block(outhandler yield)
{
Console.WriteLIne("Start of method");
yield();
yield();
Console.WriteLIne("End of method");
}
void test(){Console.WriteLine("In the block"); }
//调用
call_block(test);
哈哈,上面的代码似乎要比ruby的冗余很多,但是也要严格很多,不知道我这样的分析对不对,不过还是不能完全代替,如果函数中定义一个变量:
def call_block
puts "Start of method"
@count=1
yield
yield
puts "End of method"
end
call_block { puts @count=@count+1 }
输出:
Start of method
2
3
End of method
也就是说这个代理要获得对上下文作用域的访问权,这在.net里恐怕实现不了,这就有点像一个宏了,甚至是代码织入,不过宏好像不能搞方法传递吧。因
此,ruby的yield还是很有特色,看看他使用的一些例子:
输入
[ 'cat', 'dog', 'horse' ].each {|name| print name, " " }
5.times { print "*" }
3.upto(6) {|i| print i }
('a'..'e').each {|char| print char }
输出:
cat dog horse *****3456abcde
嘿嘿,这些实现.net委托都可以搞定,给个函数指针...
posted @ 2007-04-03 01:21 sharpedge 阅读(1675) 评论(2) 编辑
摘要: 虎狼之侧,岂容酣睡?若无虎狼,汝将如何?虎狼再临,尚能战否?以前在大学,有如虎狼般追求进步的同伴,促使自己也要努力上进,不敢懈怠。工作以后,没有一个朝夕相处的虎狼作伴,危机感不强,以致倦怠,回来也是打游戏,看新闻,对新技术也是浅尝则止,日渐颓废。这样的日子如果继续,我估计真的就泯然众人矣了...在没有网上的日子里,反倒静下来看了下书,虽然一向对技术内幕之类的书嗤之以鼻,但还是认真地读着<AS...阅读全文
posted @ 2006-09-27 00:12 sharpedge 阅读(126) 评论(0) 编辑
摘要: 作为软件质量保证的重要一环,测试代码覆盖率是评判单元测试的重要标准。既然已经为你的代码编写了自动回归的单元测试,你当然想知道是不是所有的代码都测到了,完整的测试代码覆盖率可以说是零缺陷软件的决定性因素之一。说到.net下的代码覆盖统计软件,当属NCover大名鼎鼎了,我们将其和NAant,Nunit一起配合使用,在每日构建和自动化测试领域是非常方便的,正如我前面所说的,对许多程序员而言,还是集成到...阅读全文
posted @ 2006-03-28 21:39 sharpedge 阅读(2586) 评论(5) 编辑
摘要: NUnit支持将测试结果保存为xml文件,于是就产生了针对其文件产生报表的一些工具。目前普遍为人所接受的转报表工具是NUnit2Report task,这个开源组件是和NAnt集成的,你要把他跑起来得用NAnt以及相应的配置文件,这种设计的出发点是基于NAnt的自动构建,生成相应的报表。很多像我一样的windows程序员,习惯了集成,习惯于一个工具撒都搞定,不是很有耐心去配置相应的东西,我们希望我...阅读全文
posted @ 2006-03-26 20:33 sharpedge 阅读(1540) 评论(2) 编辑
摘要: 随着不断地建立TestCase,需要管理的测试方法也越来越多,一打开Nunit,就是一个大大的测试树,对自动化测试而言,也许每个方法的说明并不重要,但有时候想测试某一项功能时,如何准确地找到该方法绝对是件头疼的事。我希望对左边的每个树结点都有相应的方法说明以便于我进行查看和管理。先看看源码吧,我使用的是nunit2.2.7 的源码项目,在代码中,当我们单击左边的树结点时,右边会显示对应得类名和方法...阅读全文
posted @ 2006-03-25 18:52 sharpedge 阅读(1573) 评论(5) 编辑
