一般情况下是
w 可以查看当前活跃的用户列表
cat /etc/group 查看用户组
这样出来的结果一大堆
简明的layout命令
ArrayList list = new ArrayList();
list.Add(new { id = "0", value = "--请选择--" });
list.Add(new { id = "1", value = "一般案件" });
list.Add(new { id = "2", value = "银行案件" });
this.cboSource.DataSource = list;
this.cboSource.ValueMember = "id";
this.cboSource.DisplayMember = "value";
查日期间隔天数
SELECT julianday(date('now')) - julianday(date('2012-01-01'));
最近在做一个Android里边SQLite数据库的一个统计功能,需要取当日、当月的数据信息,用到了SQLite的日期函数,百度了一下,把找到的内容共享出来,希望对大家有用。
先共享一个示例:select strftime('%Y-%m',adddate) from nettrafficstatistics where date(adddate) = '2011-11-01',相信大家一看就能明白,就不详细解释了。
以下是找到的函数说明内容
-------------------------------------------------------------------------------------------------------------------------------------------------------------
SQLite 包括以下五个时间函数:
date(日期时间字符串, 修正符, 修正符, ……)
time(日期时间字符串, 修正符, 修正符, ……)
datetime(日期时间字符串, 修正符, 修正符, ……)
julianday(日期时间字符串, 修正符, 修正符, ……)
strftime(日期时间格式, 日期时间字符串, 修正符, 修正符, ……)
上述五个函数需要一个日期时间字符串做参数,后面可以跟零到多个修正符参数。而 strftime() 函数还需要一个日期时间格式字符串做第一个参数。
date() 函数返回一个以 “YYYY-MM-DD” 为格式的日期;
time() 函数返回一个以 “YYYY-MM-DD HH:MM:SS” 为格式的日期时间;
julianday() 函数返回一个天数,从格林威治时间公元前4714年11月24号开始算起;
strftime() 函数返回一个经过格式话的日期时间,它可以用下面的符号对日期和时间进行格式化:
%d 一月中的第几天 01-31
%f 小数形式的秒,SS.SSSS
%H 小时 00-24
%j 一年中的第几天 01-366
%J Julian Day Numbers
%m 月份 01-12
%M 分钟 00-59
%s 从 1970-01-01日开始计算的秒数
%S 秒 00-59
%w 星期,0-6,0是星期天
%W 一年中的第几周 00-53
%Y 年份 0000-9999
%% % 百分号
其他四个函数都可以用 strftime() 函数来表示:
date(…) -> strftime(“%Y-%m-%d”,…)
time(…) -> strftime(“%H:%M:%S”,…)
datetime(…) -> strftime(“%Y-%m-%d %H:%M:%S”,…)
julianday(…) -> strftime(“%J”,…)
日期时间字符串可以用以下几种格式:
YYYY-MM-DD
YYYY-MM-DD HH:MM
YYYY-MM-DD HH:MM:SS
YYYY-MM-DD HH:MM:SS.SSS
YYYY-MM-DDTHH:MM
YYYY-MM-DDTHH:MM:SS
YYYY-MM-DDTHH:MM:SS.SSS
HH:MM
HH:MM:SS
HH:MM:SS.SSS
now
DDDD.DDDD
在第五种到第七种格式中的“T”是一个分割日期和时间的字符;第八种到第十种格式只代表2000-01-01日的时间,第十一种格式的’now’表示返回一个当前的日期和时间,使用格林威治时间(UTC);第十二种格式表示一个 Julian Day Numbers。
修正符
日期和时间可以使用下面的修正符来更改日期或时间:
1. NNN days
2. NNN hours
3. NNN minutes
4. NNN.NNNN seconds
5. NNN months
6. NNN years
7. start of month
8. start of year
9. start of week
10.start of day
11.weekday N
12.unixepoch
13.localtime
14.utc
前六个修正符就是简单的增加指定数值的时间和日期;第七到第十个修正符表示返回当前日期的开始;第十一个修正符表示返回下一个星期是N的日期和时间;第十二个修正符表示返回从1970-01-01开始算起的秒数;第十三个修正符表示返回本地时间。
下面举一些例子:
计算机当前时间
SELECT date(‘now’)
计算机当前月份的最后一天
SELECT date(‘now’,’start of month’,’+1 month’,’-1 day’)
计算UNIX 时间戳1092941466表示的日期和时间
SELECT datetime(‘1092941466’,’unixepoch’)
计算 UNIX 时间戳1092941466 表示的本地日期和时间
SELECT datetime(‘1092941466’,’unixepoch’,’localtime’)
计算机当前UNIX 时间戳
SELECT strftime(‘%s’,’now’)
两个日期之间相差多少天
SELECT jolianday(‘now’)-jolianday(‘1981-12-23’)
两个日期时间之间相差多少秒
SELECT julianday('now')*86400 - julianday('2004-01-01 02:34:56')*86400
计算今年十月份第一个星期二的日期
SELECT date('now','start of year','+9 months','weekday 2');
得到年
strftime(‘%y’,'2008-4-28')
得到月
strftime(‘%m’,'2008-4-28')
同样,我们也可以通过strftime来得到其它所要的信息,但是要记得,给时间加引号
例1.
select datetime('now');
结果:2006-10-17 12:55:54
例2.
select datetime('2006-10-17');
结果:2006-10-17 12:00:00
例3.
select datetime('2006-10-17 00:20:00','+1 hour','-12 minute');
结果:2006-10-17 01:08:00
例4.
select date('2006-10-17','+1 day','+1 year');
结果:2007-10-18
例5.
select datetime('now','start of year');
结果:2006-01-01 00:00:00
例6.
select datetime('now','start of month');
结果:2006-10-01 00:00:00
例7.
select datetime('now','start of day');
结果:2006-10-17 00:00:00
例8.
select datetime('now','+10 hour','start of day','+10 hour');
结果:2006-10-17 10:00:00
例9.
select datetime('now','localtime');
结果:2006-10-17 21:21:47
例10.
select datetime('now','+8 hour');
结果:2006-10-17 21:24:45
例3中的+1 hour和-12 minute表示可以在基本时间上(datetime函数的第一个参数)增加或减少一定时间。
例5中的start of year表示一年开始的时间。
从例8可以看出,尽管第2个参数加上了10个小时,但是却被第3个参数“start of day”把时间归零到00:00:00,随后的第4个参数在00:00:00
的基础上把时间增加了10个小时变成了10:00:00。
例9把格林威治时区转换成本地时区。
例10把格林威治时区转换成东八区。
strftime()函数可以把YYYY-MM-DD HH:MM:SS格式的日期字符串转换成其它形式的字符串。strftime()的语法是strftime(格式, 日期/时间, 修正符, 修正符, ...)
它可以用以下的符号对日期和时间进行格式化:
%d 月份, 01-31
%f 小数形式的秒,SS.SSS
%H 小时, 00-23
%j 算出某一天是该年的第几天,001-366
%m 月份,00-12
%M 分钟, 00-59
%s 从1970年1月1日到现在的秒数
%S 秒, 00-59
%w 星期, 0-6 (0是星期天)
%W 算出某一天属于该年的第几周, 01-53
%Y 年, YYYY
%% 百分号
strftime()的用法举例如下:
例11.
select strftime('%Y.%m.%d %H:%M:%S','now','localtime');
结果:2006.10.17 21:41:09
例11用圆点作为日期的分隔附,并把时间转换为当地的时区的时间
在做ClinicOS的时候遇到一个问题,在保存病历登记时间时,我使用了“CURRENT_TIMESTAMP”,但这有个问题,它返回的是UTC Time,这对我们中国人没啥用,
Where julianday(date('now', 'localtime')) - julianday(date(arrival_date)) > 7
嘿嘿,看来如果想得到一个符合本机区域设置的当前时间,必须用date函数来转换,
但date只函数只返回当前日期,而我需要的是返回当前日期及时间,所以这里把它换成datetime函数,即:
datetime(CURRENT_TIMESTAMP,'localtime')
以下是sqlite下测试的输出信息:
sqlite> select CURRENT_TIMESTAMP;
2006-06-18 09:23:36
sqlite> select datetime(CURRENT_TIMESTAMP,'localtime');
2006-06-18 17:23:44
sqlite>
比如今天是:200-02-22
运行如下语句所得到的结果不一样:
select date('now')
结果:2009-02-21
select datetime('now','localtime')
结果:2009-02-22 00:52:04
所以比较时用第二种语句才取得正确结果,例如(取大于现在时间的记录):
select * from 表 where 日期字段>datetime('now','localtime')
好象没有MSSQL的datediff等函数
如下语句实现datediff('m',开始日期,结束日期')函数同一个数数据:
select * from 表 where strftime('%m',日期字段)=strftime('%m','now')
如此就可以实现了两个日期相比较,举一反三,同样使用strftime格式式日期来对日、周、年比较
参考Sqlite日期函数详细文档:
http://www.xueit.com/html/2009-02/27_649_00.html
select * from Placard where Placard_EndTime > datetime('now');
Select Placard_StartTime,strftime('%s',Placard_StartTime) , datetime('now'),strftime('%s','now') FROM Placard
差8个时区...
Select Placard_StartTime,strftime('%s',Placard_StartTime) , datetime('now','localtime'),strftime('%s','now','localtime') FROM Placard
上一条:大于指定时间的第一条
select title,pubtime from article where pubtime>'2008-06-15 03:35:28' order by pubtime asc Limit 1 Offset 0
貌似时间的格式有严格的要求 2008-06-15 03:35:28 前面只能用 - 后面只能用:不足二位数的补零
下一条:小于指定时间的第一条
select title,pubtime from article where pubtime<'2008-06-15 03:35:28' order by pubtime desc Limit 1 Offset 0
注意时间的精度。03:35:28 后面就没有了。
03:35:28.000
原文地址:http://jianhai1229.blog.163.com/blog/static/3488700020115834648430/
在我十几岁的时候就开始玩甲级级棒球。我水平很差,但当我决定要做好什么事时,最终总能如我愿。现在我是计算机专业 3 年纪的学生。在编程上,有些事情和体育是截然不同的:棒球教练可以教会你如何打棒球,但一个计算机教授却不能教你如何编程。
我很吃惊,在整个大一期间,我的老师或教授从来不点评我的代码,大二时更是如此。我们的作业很多,题目很难,但在完成了数据结构课上的 2000 行的代码后,我从来没有收到过老师的任何一条评论——只要程序能编译通过,单元测试显示没有错误,这就行了。直到遇到了一个小组开发的项目,我才认识到我的代码写的多烂,我才开始询问:好的程序应该如何写。
但是,什么样的代码才是好的代码?我花了大量的时间来提高代码的可读性,添加注释。我努力模仿 UNIX 的哲学观,力求简约,首先让程序能跑起来,在此基础之上,在需要的情况在进行优化。复杂的东西要逐步增加。除非必要,我不使用线程。但是,说实话,我不知道这是不是好的代码(说实话,我觉得自己水平很差)。
我很幸运,能和一群优秀同学一起工作,他们都是出色的程序员,他们在微软、谷歌、亚马逊等公司实习。他们的观点都很一致,认为自己的知识都是自己总结或从其他程序员那里学到的。即使是非常资深的软件工程师也有这样的看法。所以,我的结论是:
所有程序员都是自学成才的。
我受的教育给了我很好的基础:数据结构,算法,数据库设计,并行计算,网络编程,敏捷开发以及各种编程模式。但所有的这些,即使是它们使得编程更高效和更精巧,你仍然可能用错它们——我曾经看过一些学生在这些课程上学习成绩非常好,但写的代码却让人想哭。
我并不认为学过计算机科学、软件工程或得到一个大学文凭会有多大的用处,如果你想靠写代码为生,自学是你不可缺少的途径。
"window.location.href"、"location.href"是本页面跳转
"parent.location.href"是上一层页面跳转
"top.location.href"是最外层的页面跳转
举例说明:
如果A,B,C,D都是jsp,D是C的iframe,C是B的iframe,B是A的iframe,如果D中js这样写
"window.location.href"、"location.href":D页面跳转
"parent.location.href":C页面跳转
"top.location.href":A页面跳转
如果D页面中有form的话,
<form>: form提交后D页面跳转
<form target="_blank">: form提交后弹出新页面
<form target="_parent">: form提交后C页面跳转
<form target="_top"> : form提交后A页面跳转
关于页面刷新,D 页面中这样写:
"parent.location.reload();": C页面刷新 (当然,也可以使用子窗口的 opener 对象来获得父窗口的对象:window.opener.document.location.reload(); )
"top.location.reload();": A页面刷新
onerror="javascript:this.src='images/no_img.jpg'"
<img src="<%=basePath %>upload/${item.pic}" width="148" height="130" onerror="javascript:this.src='<%=basePath %>images/nopic.png'" />
本文会给你们展示50个jquery代码片段,这些代码能够给你的javascript项目提供帮助。其中的一些代码段是从jQuery1.4.2才开始支持的做法,另一些则是真正有用的函数或方法,他们能够帮助你又快又好地把事情完成。这些都是我尽量记住的有着最佳性能的代码段,因此如果你发现你任何可以做得更好的地方的话,欢迎把你的版本粘贴在评论中!我希望你在这一文章中能找到有帮助的东西。
1. 如何创建嵌套的过滤器:
1. //允许你减少集合中的匹配元素的过滤器,
2. //只剩下那些与给定的选择器匹配的部分。在这种情况下,
3. //查询删除了任何没(:not)有(:has)
4. //包含class为“selected”(.selected)的子节点。
5. .filter(":not(:has(.selected))")
2. 如何重用元素搜索
1. var allItems = $("div.item");
2. var keepList = $("div#container1 div.item");
3. //现在你可以继续使用这些jQuery对象来工作了。例如,
4. //基于复选框裁剪“keep list”,复选框的名称
5. //符合
6. < DIV >class names:
7. $(formToLookAt + " input:checked").each(function() {
8. keepList = keepList.filter("." + $(this).attr("name"));
9. });
10. < /DIV>
3. 任何使用has()来检查某个元素是否包含某个类或是元素:
1. //jQuery 1.4.*包含了对这一has方法的支持。该方法找出
2. //某个元素是否包含了其他另一个元素类或是其他任何的
3. //你正在查找并要在其之上进行操作的东东。
4. $("input").has(".email").addClass("email_icon");
4. 如何使用jQuery来切换样式表
1. //找出你希望切换的媒体类型(media-type),然后把href设置成新的样式表。
2. $('link[media='screen']').attr('href', 'Alternative.css');
5. 如何限制选择范围(基于优化目的):
1. //尽可能使用标签名来作为类名的前缀,
2. //这样jQuery就不需要花费更多的时间来搜索
3. //你想要的元素。还要记住的一点是,
4. //针对于你的页面上的元素的操作越具体化,
5. //就越能降低执行和搜索的时间。
6. var in_stock = $('#shopping_cart_items input.is_in_stock'); <ul id="shopping_cart_items">
<li><input type="radio" value="Item-X" name="item" class="is_in_stock" /> Item X</li>
<li><input type="radio" value="Item-Y" name="item" class="3-5_days" /> Item Y</li>
<li><input type="radio" value="Item-Z" name="item" class="unknown" /> Item Z</li>
</ul>
6. 如何正确地使用ToggleClass:
1. //切换(toggle)类允许你根据某个类的
2. //是否存在来添加或是删除该类。
3. //这种情况下有些开发者使用:
4. a.hasClass('blueButton') ? a.removeClass('blueButton') : a.addClass('blueButton');
5. //toggleClass允许你使用下面的语句来很容易地做到这一点
6. a.toggleClass('blueButton');
7. 如何设置IE特有的功能:
1. if ($.browser.msie) {
2. // Internet Explorer就是个虐待狂
3. }
8. 如何使用jQuery来代替一个元素:
1. $('#thatdiv').replaceWith('fnuh');
9. 如何验证某个元素是否为空:
1. if ($('#keks').html()) {
2. //什么都没有找到;
3. }
10. 如何从一个未排序的集合中找出某个元素的索引号
1. $("ul > li").click(function () {
2. var index = $(this).prevAll().length;
3. });
11. 如何把函数绑定到事件上:
1. $('#foo').bind('click', function() {
2. alert('User clicked on "foo."');
3. });
12. 如何追加或是添加html到元素中:
1. $('#lal').append('sometext');
13. 在创建元素时,如何使用对象字面量(literal)来定义属性
1. var e = $("", { href: "#", class: "a-class another-class", title: "..." });
14. 如何使用多个属性来进行过滤
1. //在使用许多相类似的有着不同类型的input元素时,
2. //这种基于精确度的方法很有用
3. var elements = $('#someid input[type=sometype][value=somevalue]').get();
15. 如何使用jQuery来预加载图像:
1. jQuery.preloadImages = function() {
2. for(var i = 0; i < arguments.length; i++) {
3. $("<img />").attr('src', arguments[i]);
4. }
5. };
6. //用法
7. $.preloadImages('image1.gif', '/path/to/image2.png', 'some/image3.jpg');
16. 如何为任何与选择器相匹配的元素设置事件处理程序:
1. $('button.someClass').live('click', someFunction);
2. //注意,在jQuery 1.4.2中,delegate和undelegate选项
3. //被引入代替live,因为它们提供了更好的上下文支持
4. //例如,就table来说,以前你会用
5. //.live()
6. $("table").each(function(){
7. $("td", this).live("hover", function(){
8. $(this).toggleClass("hover");
9. });
10. });
11. //现在用
12. $("table").delegate("td", "hover", function(){
13. $(this).toggleClass("hover");
14. });
17. 如何找到一个已经被选中的option元素:
1. $('#someElement').find('option:selected');
18. 如何隐藏一个包含了某个值文本的元素:
1. $("p.value:contains('thetextvalue')").hide();
19. 如果自动滚动到页面中的某区域
1. jQuery.fn.autoscroll = function(selector) {
2. $('html,body').animate(
3. {scrollTop: $(selector).offset().top},
4. 500
5. };
6. }
7. //然后像这样来滚动到你希望去到的class/area上。
8. $('.area_name').autoscroll();
20. 如何检测各种浏览器:
1. 检测Safari (if( $.browser.safari)),
2. 检测IE6及之后版本 (if ($.browser.msie && $.browser.version > 6 )),
3. 检测IE6及之前版本 (if ($.browser.msie && $.browser.version <= 6 )),
4. 检测FireFox 2及之后版本 (if ($.browser.mozilla && $.browser.version >= '1.8' ))
21. 如何替换串中的词
1. var el = $('#id');
2. el.html(el.html().replace(/word/ig, ''));
22. 如何禁用右键单击上下文菜单:
1. $(document).bind('contextmenu',function(e){
2. return false;
3. });
23. 如何定义一个定制的选择器
1. $.expr[':'].mycustomselector = function(element, index, meta, stack){
2. // element- 一个DOM元素
3. // index – 栈中的当前循环索引
4. // meta – 有关选择器的元数据
5. // stack – 要循环的所有元素的栈
6. // 如果包含了当前元素就返回true
7. // 如果不包含当前元素就返回false };
8. // 定制选择器的用法:
9. $('.someClasses:test').doSomething();
24. 如何检查某个元素是否存在
1. if ($('#someDiv').length) {
2. //万岁!!!它存在……
3. }
25. 如何使用jQuery来检测右键和左键的鼠标单击两种情况:
1. $("#someelement").live('click', function(e) {
2. if( (!$.browser.msie && e.button == 0) || ($.browser.msie && e.button == 1) ) {
3. alert("Left Mouse Button Clicked");
4. } else if(e.button == 2) {
5. alert("Right Mouse Button Clicked");
6. }
7. });
26. 如何显示或是删除input域中的默认值
1. //这段代码展示了在用户未输入值时,
2. //如何在文本类型的input域中保留
3. //一个默认值
4. wap_val = [];
5. $(".swap").each(function(i){
6. wap_val[i] = $(this).val();
7. $(this).focusin(function(){
8. if ($(this).val() == swap_val[i]) {
9. $(this).val("");
10. }
11. }).focusout(function(){
12. if ($.trim($(this).val()) == "") {
13. $(this).val(swap_val[i]);
14. }
15. });
16. });
27. 如何在一段时间之后自动隐藏或关闭元素(支持1.4版本):
1. //这是1.3.2中我们使用setTimeout来实现的方式
2. setTimeout(function() {
3. $('.mydiv').hide('blind', {}, 500)
4. }, 5000);
5. //而这是在1.4中可以使用delay()这一功能来实现的方式(这很像是休眠)
6. $(".mydiv").delay(5000).hide('blind', {}, 500);
28. 如何把已创建的元素动态地添加到DOM中:
1. var newDiv = $('');
2. newDiv.attr('id','myNewDiv').appendTo('body');
29. 如何限制“Text-Area”域中的字符的个数:
1. jQuery.fn.maxLength = function(max){
2. this.each(function(){
3. var type = this.tagName.toLowerCase();
4. var inputType = this.type? this.type.toLowerCase() : null;
5. if(type == "input" && inputType == "text" || inputType == "password"){
6. //Apply the standard maxLength
7. this.maxLength = max;
8. }
9. else if(type == "textarea"){
10. this.onkeypress = function(e){
11. var ob = e || event;
12. var keyCode = ob.keyCode;
13. var hasSelection = document.selection? document.selection.createRange().text.length > 0 : this.selectionStart != this.selectionEnd;
14. return !(this.value.length >= max && (keyCode > 50 || keyCode == 32 || keyCode == 0 || keyCode == 13) && !ob.ctrlKey && !ob.altKey && !hasSelection);
15. };
16. this.onkeyup = function(){
17. if(this.value.length > max){
18. this.value = this.value.substring(0,max);
19. }
20. };
21. }
22. });
23. };
24. //用法
25. $('#mytextarea').maxLength(500);
30. 如何为函数创建一个基本的测试
1. //把测试单独放在模块中
2. module("Module B");
3. test("some other test", function() {
4. //指明测试内部预期有多少要运行的断言
5. expect(2);
6. //一个比较断言,相当于JUnit的assertEquals
7. equals( true, false, "failing test" );
8. equals( true, true, "passing test" );
9. });
31. 如何在jQuery中克隆一个元素:
1. var cloned = $('#somediv').clone();
32. 在jQuery中如何测试某个元素是否可见
1. if($(element).is(':visible') == 'true') {
2. //该元素是可见的
3. }
33. 如何把一个元素放在屏幕的中心位置:
1. jQuery.fn.center = function () {
2. this.css('position','absolute');
3. this.css('top', ( $(window).height() - this.height() ) / +$(window).scrollTop() + 'px');
4. this.css('left', ( $(window).width() - this.width() ) / 2+$(window).scrollLeft() + 'px');
5. return this;
6. }
7. //这样来使用上面的函数:
8. $(element).center();
34. 如何把有着某个特定名称的所有元素的值都放到一个数组中:
1. var arrInputValues = new Array();
2. $("input[name='table[]']").each(function(){
3. arrInputValues.push($(this).val());
4. });
35. 如何从元素中除去HTML
1. (function($) {
2. $.fn.stripHtml = function() {
3. var regexp = /<("[^"]*"|'[^']*'|[^'">])*>/gi;
4. this.each(function() {
5. $(this).html( $(this).html().replace(regexp,”") );
6. });
7. return $(this);
8. }
9. })(jQuery);
10. //用法:
11. $('p').stripHtml();
36. 如何使用closest来取得父元素:
1. $('#searchBox').closest('div');
37. 如何使用Firebug和Firefox来记录jQuery事件日志:
1. // 允许链式日志记录
2. // 用法:
3. $('#someDiv').hide().log('div hidden').addClass('someClass');
4. jQuery.log = jQuery.fn.log = function (msg) {
5. if (console){
6. console.log("%s: %o", msg, this);
7. }
8. return this;
9. };
38. 如何强制在弹出窗口中打开链接:
1. jQuery('a.popup').live('click', function(){
2. newwindow=window.open($(this).attr('href'),'','height=200,width=150');
3. if (window.focus) {
4. newwindow.focus();
5. }
6. return false;
7. });
39. 如何强制在新的选项卡中打开链接:
1. jQuery('a.newTab').live('click', function(){
2. newwindow=window.open($(this).href);
3. jQuery(this).target = "_blank";
4. return false;
5. });
40. 在jQuery中如何使用.siblings()来选择同辈元素
1. // 不这样做
2. $('#nav li').click(function(){
3. $('#nav li').removeClass('active');
4. $(this).addClass('active');
5. });
6. //替代做法是
7. $('#nav li').click(function(){
8. $(this).addClass('active').siblings().removeClass('active');
9. });
41. 如何切换页面上的所有复选框:
1. var tog = false;
2. // 或者为true,如果它们在加载时为被选中状态的话
3. $('a').click(function() {
4. $("input[type=checkbox]").attr("checked",!tog);
5. tog = !tog;
6. });
42. 如何基于一些输入文本来过滤一个元素列表:
1. //如果元素的值和输入的文本相匹配的话
2. //该元素将被返回
3. $('.someClass').filter(function() {
4. return $(this).attr('value') == $('input#someId').val();
5. })
43. 如何获得鼠标垫光标位置x和y
1. $(document).ready(function() {
2. $(document).mousemove(function(e){
3. $(’#XY’).html(”X Axis : ” + e.pageX + ” | Y Axis ” + e.pageY);
4. });
5. });
44. 如何把整个的列表元素(List Element,LI)变成可点击的
1. $("ul li").click(function(){
2. window.location=$(this).find("a").attr("href");
3. return false;
4. });
1. <ul>
2. <li><a href="#">Link 1</a></li>
3. <li><a href="#">Link 2</a></li>
4. <li><a href="#">Link 3</a></li>
5. <li><a href="#">Link 4</a></li>
6. </ul>
45. 如何使用jQuery来解析XML(基本的例子):
1. function parseXml(xml) {
2. //找到每个Tutorial并打印出author
3. $(xml).find("Tutorial").each(function() {
4. $("#output").append($(this).attr("author") + "");
5. });
6. }
46. 如何检查图像是否已经被完全加载进来
1. $('#theImage').attr('src', 'image.jpg').load(function() {
2. alert('This Image Has Been Loaded');
3. });
47. 如何使用jQuery来为事件指定命名空间:
1. //事件可以这样绑定命名空间
2. $('input').bind('blur.validation', function(e){
3. // ...
4. });
5. //data方法也接受命名空间
6. $('input').data('validation.isValid', true);
48. 如何检查cookie是否启用
1. var dt = new Date();
2. dt.setSeconds(dt.getSeconds() + 60);
3. document.cookie = "cookietest=1; expires=" + dt.toGMTString();
4. var cookiesEnabled = document.cookie.indexOf("cookietest=") != -1;
5. if(!cookiesEnabled) {
6. //没有启用cookie
7. }
49. 如何让cookie过期:
1. var date = new Date();
2. date.setTime(date.getTime() + (x * 60 * 1000));
3. $.cookie('example', 'foo', { expires: date });
50. 如何使用一个可点击的链接来替换页面中任何的URL
1. $.fn.replaceUrl = function() {
2. var regexp = /((ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?)/gi;
3. this.each(function() {
4. $(this).html(
5. $(this).html().replace(regexp,'<a href="$1">$1</a>‘)
6. );
7. });
8. return $(this);
9. }
10. //用法
11. $('p').replaceUrl();
转自:http://www.cnblogs.com/smailxiaobai/archive/2012/01/09/2316933.html 1
判断select选项中 是否存在Value="paraValue"的Item
2
向select选项中 加入一个Item
3
从select选项中 删除一个Item
4
删除select中选中的项
5
修改select选项中 value="paraValue"的text为"paraText"
6
设置select中text="paraText"的第一个Item为选中
7
设置select中value="paraValue"的Item为选中
8
得到select的当前选中项的value
9
得到select的当前选中项的text
10
得到select的当前选中项的Index
11
清空select的项
js 代码
// 1.判断select选项中 是否存在Value="paraValue"的Item
function jsSelectIsExitItem(objSelect, objItemValue) {
var isExit = false;
for (var i = 0; i < objSelect.options.length; i++) {
if (objSelect.options[i].value == objItemValue) {
isExit = true;
break;
}
}
return isExit;
}
// 2.向select选项中 加入一个Item
function jsAddItemToSelect(objSelect, objItemText, objItemValue) {
//判断是否存在
if (jsSelectIsExitItem(objSelect, objItemValue)) {
alert("该Item的Value值已经存在");
} else {
var varItem = new Option(objItemText, objItemValue);
objSelect.options.add(varItem);
alert("成功加入");
}
}
// 3.从select选项中 删除一个Item
function jsRemoveItemFromSelect(objSelect, objItemValue) {
//判断是否存在
if (jsSelectIsExitItem(objSelect, objItemValue)) {
for (var i = 0; i < objSelect.options.length; i++) {
if (objSelect.options[i].value == objItemValue) {
objSelect.options.remove(i);
break;
}
}
alert("成功删除");
} else {
alert("该select中 不存在该项");
}
}
// 4.删除select中选中的项
function jsRemoveSelectedItemFromSelect(objSelect) {
var length = objSelect.options.length - 1;
for(var i = length; i >= 0; i--){
if(objSelect[i].selected == true){
objSelect.options[i] = null;
}
}
}
// 5.修改select选项中 value="paraValue"的text为"paraText"
function jsUpdateItemToSelect(objSelect, objItemText, objItemValue) {
//判断是否存在
if (jsSelectIsExitItem(objSelect, objItemValue)) {
for (var i = 0; i < objSelect.options.length; i++) {
if (objSelect.options[i].value == objItemValue) {
objSelect.options[i].text = objItemText;
break;
}
}
alert("成功修改");
} else {
alert("该select中 不存在该项");
}
}
// 6.设置select中text="paraText"的第一个Item为选中
function jsSelectItemByValue(objSelect, objItemText) {
//判断是否存在
var isExit = false;
for (var i = 0; i < objSelect.options.length; i++) {
if (objSelect.options[i].text == objItemText) {
objSelect.options[i].selected = true;
isExit = true;
break;
}
}
//Show出结果
if (isExit) {
alert("成功选中");
} else {
alert("该select中 不存在该项");
}
}
// 7.设置select中value="paraValue"的Item为选中
document.all.objSelect.value = objItemValue;
// 8.得到select的当前选中项的value
var currSelectValue = document.all.objSelect.value;
// 9.得到select的当前选中项的text
var currSelectText = document.all.objSelect.options[document.all.objSelect.selectedIndex].text;
// 10.得到select的当前选中项的Index
var currSelectIndex = document.all.objSelect.selectedIndex;
// 11.清空select的项
document.all.objSelect.options.length = 0; 
一直都是简单去js实现cookie的一些操作,今天把js对cookie操作系统的整理了一遍,包括:js读取cookie,js添加cookie,js删除cookie,示例如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
<title>cookie处理函数练习(为我所写,非我所想:改善面向对象)</title>
<script language="JavaScript" type="text/javascript">
function addCookie(objName,objValue,objHours){//添加cookie
var str = objName + "=" + escape(objValue);
if(objHours > 0){//为0时不设定过期时间,浏览器关闭时cookie自动消失
var date = new Date();
var ms = objHours*3600*1000;
date.setTime(date.getTime() + ms);
str += "; expires=" + date.toGMTString();
}
document.cookie = str;
alert("添加cookie成功");
}
function getCookie(objName){//获取指定名称的cookie的值
var arrStr = document.cookie.split("; ");
for(var i = 0;i < arrStr.length;i ++){
var temp = arrStr[i].split("=");
if(temp[0] == objName) return unescape(temp[1]);
}
}
function delCookie(name){//为了删除指定名称的cookie,可以将其过期时间设定为一个过去的时间
var date = new Date();
date.setTime(date.getTime() - 10000);
document.cookie = name + "=a; expires=" + date.toGMTString();
}
//读取出来所有的cookie字筗串了
function allCookie(){//读取所有保存的cookie字符串
var str = document.cookie;
if(str == ""){
str = "没有保存任何cookie";
}
alert(str);
}
function $(m,n){
return document.forms[m].elements[n].value;
}
function add_(){
var cookie_name = $("myform","cookie_name");
var cookie_value = $("myform","cookie_value");
var cookie_expireHours = $("myform","cookie_expiresHours");
addCookie(cookie_name,cookie_value,cookie_expireHours);
}
function get_(){
var cookie_name = $("myform","cookie_name");
var cookie_value = getCookie(cookie_name);
alert(cookie_value);
}
function del_(){
var cookie_name = $("myform","cookie_name");
delCookie(cookie_name);
alert("删除成功");
}
</script>//添加cookie
function addCookie(name,value,expires,path,domain){
var str=name+"="+escape(value);
if(expires!=""){
var date=new Date();
date.setTime(date.getTime()+expires*24*3600*1000);//expires单位为天
str+=";expires="+date.toGMTString();
}
if(path!=""){
str+=";path="+path;//指定可访问cookie的目录
}
if(domain!=""){
str+=";domain="+domain;//指定可访问cookie的域
}
document.cookie=str;
}
//取得cookie
function getCookie(name){
var str=document.cookie.split(";")
for(var i=0;i<str.length;i++){
var str2=str[i].split(”=”);
if(str2[0]==name)return unescape(str2[1]);
}
}
//删除cookie
function delCookie(name){
var date=new Date();
date.setTime(date.getTime()-10000);
document.cookie=name+”=n;expire=”+date.toGMTString();
[下面讲的经个人觉得比较好哦!]
我们当然还得介绍cookie的四个属性。这些属性用下面的格式加到字符串值后面:
name=<value>[; expires=<date>][; domain=<domain>][; path=<path>][; secure]
名称=<值>[; expires=<日期>][; domain=<域>][; path=<路径>][; 安全]
<value>, <date>, <domain> 和 <path> 应当用对应的值替换。<date> 应当使用GMT格式,可以使用Javascript脚本语言的日期类Date的.toGMTString() 方法得到这一GMT格式的日期值。方括号代表这项是可选的。比如在 [; secure]两边的方括号代表要想把cookie设置成安全的,就需要把"; secure" 加到cookie字符串值的后面。如果"; secure" 没有加到cookie字符串后面,那么这个cookie就是不安全的。不要把尖括号<> 和方括号[] 加到cookie里(除非它们是某些值的内容)。设置属性时,不限属性,可以用任何顺序设置。
下面是一个例子,在这个例子里,cookie "username" 被设置成在15分钟之后过期,可以被服务器上的所有目录访问,可以被"mydomain.com"域里的所有服务器访问,安全状态为安全。
// Date() 的构造器设置以毫秒为单位
// .getTime() 方法返回时间,单位为毫秒
// 所以要设置15分钟到期,要用60000毫秒乘15分钟
var expiration = new Date((new Date()).getTime() + 15 * 60000);
document.cookie = "username=" + escape(form.username.value)+ "; expires ="
+ expiration.toGMTString() + "; path=" + "/" + "; _
domain=" + "mydomain.com" + "; secure";
// 我们定义一个函数,用来读取特定的cookie值。[得到指定名字的cookie对象哦!]
function getCookie(cookie_name)
{
var allcookies = document.cookie;
var cookie_pos = allcookies.indexOf(cookie_name);
// 如果找到了索引,就代表cookie存在,
// 反之,就说明不存在。
if (cookie_pos != -1)
{
// 把cookie_pos放在值的开始,只要给值加1即可。
cookie_pos += cookie_name.length + 1;
var cookie_end = allcookies.indexOf(";", cookie_pos);
if (cookie_end == -1)
{
cookie_end = allcookies.length;
}
var value = unescape(allcookies.substring(cookie_pos, cookie_end));
}
return value;
}
// 调用函数
var cookie_val = getCookie("username");
3.为什么我设置了cookie的过期时间如果为关闭的时候就自动清空的话怎么没用呢?
来研究一下JSP操纵cookie?
Cookie概念:
Cookie的格式实际上是一段纯文本信息, 由服务器随着网页一起发送到客户端, 并保存在客户端硬盘中指定的目录的. 大家都传说Cookie会造成严重的安全威胁什么的, 其实不是这么回事情. 服务器读取Cookie的时候, 只能够读取到这个服务器相关的信息. 而且, 浏览器一般只允许存放300个Cookie, 每个站点最多存放20个, 而且, 每个Cookie的大小现在在4K, 根本不会占用多少空间. 并且, Cookie是有时效性质的. 例如, 设置了Cookie的存活时间为1分钟, 则一分钟后这个Cookie就会被浏览器删除
Cookie版本:
目前有两个版本:
版本0 : 由Netscape公司制定的,也被几乎所有的浏览器支持. Java中为了保持兼容性, 目前只支持到版本0, Cookie的内容中不能空格,方括号,圆括号,等于号(=),逗号,双引号,斜杠,问号,@符号,冒号,分号。
版本1 : 根据RFC 2109文档制定的. 放宽了很多限制. 上面所限制的字符都可以使用. 但为了保持兼容性, 应该尽量避免使用这些特殊字符.
JSP中对Cookie的操作: 类型 方法名 方法解释
String getComment() 返回cookie中注释,如果没有注释的话将返回空值.
String getDomain() 返回cookie中Cookie适用的域名. 使用getDomain() 方法可以指示浏览器把Cookie返回给同 一域内的其他服务器,而通常 Cookie只返回给与发送它的服务器名字完全相同的服务器。注意域名必须以点开始
int getMaxAge() 返回Cookie过期之前的最大时间,以秒计算。
String getName() 返回Cookie的名字
String getPath() 返回Cookie适用的路径。如果不指定路径,Cookie将返回给当前页面所在目录及其子目录下 的所有页面。
boolean getSecure() 如果浏览器通过安全协议发送cookies将返回true值,如果浏览器使用标准协议则返回false值。
String getValue() 返回Cookie的值。笔者也将在后面详细介绍getValue/setValue。
int getVersion() 返回Cookie所遵从的协议版本。
void setComment(String purpose) 设置cookie中注释
void setDomain(String pattern) 设置cookie中Cookie适用的域名
void setMaxAge(int expiry) 以秒计算,设置Cookie过期时间。
void setPath(String uri) 指定Cookie适用的路径。
void setSecure(boolean flag) 指出浏览器使用的安全协议,例如HTTPS或SSL。
void setValue(String newValue) cookie创建后设置一个新的值。
void setVersion(int v) 设置Cookie所遵从的协议版本
一个简单的例子
1. 写入Cookie --- writecookie.jsp
-------------------------------------------------------------
<%@ page contentType="text/html; charset=ISO8859_1" %>
<%
Cookie _cookie=new Cookie("user_delfancom", "delfan");
_cookie.setMaxAge(30*60); // 设置Cookie的存活时间为30分钟
response.addCookie(_cookie); // 写入客户端硬盘
out.print("写Cookie完成");
%>
2. 读取Cookie.jsp --- readcookie.jsp
-------------------------------------------------------------
<%
Cookie cookies[]=request.getCookies(); // 将适用目录下所有Cookie读入并存入cookies数组中
Cookie sCookie=null;
String sname=null;
String name=null;
if(cookies==null) // 如果没有任何cookie
out.print("none any cookie");
else
{
out.print(cookies.length + "<br>");
for(int i=0;i<cookies.length; i++) // 循环列出所有可用的Cookie
{
sCookie=cookies[i];
sname=sCookie.getName();
name = sCookie.getValue();
out.println(sname + "->" + name + "<br>");
}
}
%>
需要注意的两个问题:
1. Cookie有个适用路径的问题, 就是说如果 writecookie.jsp和readcookie.jsp要放在同意目录下, 如果不在同一目录下, 则写的时候需要设置路径,为readcookie.jsp所在的路径.
2. 读入Cookie数组的时候需要判断是否为空(null), 网上很多代码都没有写出这一点.



