javascript(Nodejs)中的一些实用小技巧

原创 2013年12月05日 10:19:37

1.  不能浏览器下的阻止跳转,阻止继续执行

<script>
   <span style="font-family:ms shell dlg;"><span style="font-size: 14px; line-height: 28px;">return false; </span></span>//chrome 浏览器可以,但是Firefox不行,会在页面上打印false
   
   e=window.event;
   e.stopPropagation(); //Firefox,chrome都可以
   e.cancelBubble=true; //IE 下也可以

 </script>

所以理论上要停止代码继续执行。可以用

event.preventDefault(); [2014-12-05] 貌似只有这一个是可以的!其他的都不能阻止。擦。估计是jquery的版本不同引起的。那就用这个吧!

来做到各个浏览器都兼容。


2. 获取textarea框中换行的数据,并转换成数组,支持各种空格和换行


如图所示:


var order_list = $("#job_input_order").val(); //获取这个元素的值
order_list = order_list.replace(/^[\r\n\s]+|[\r\n\s]+$/g,''); //用replace 正则去空
var order_data = order_list.split(/[\r\n\s]+/); //用split 正则分割成数组

3.  jquery动态绑定

从jQuery 0.9几开始,忘记了。取消动态绑定live() 方法,用on() 事件方法取消。但是发现on() 也不行,动态加载的东西就是不能绑定,发现是必须要这样:

$(document).on("click", '.user-delete', function(){
     confirm('确认删除这个用户嘛?') && ajax_delete($(this).attr('data-id'));
});

要用 $(document)绑定dom 的方法。第二次参数填入 绑定的标记,我用的是class 标记的。


 4. 元素绑定事件获取元素里面的值


也是用jQuery来做。

比如:

<button data-id="5488413f9bb81678b2ef50ef" class="btn btn-danger user-delete">Delete user</button>

我需要在给这个元素绑定 click 事件,并获取data-id 的值:

$("button.user-delete").bind("click",function(){
    var id = $(this).attr('data-id');
});

用$(this) 来获取自身对象,用attr 获取data-id 的这个属性值。就可以了。

5. 页面滚动自动ajax加载


实现方法有很多,这里一种是网上一个比较简单的,也蛮实用的,但是注意的坑是 这个range 值设为50以下,不能设为100+。不然会自动加载2次,原因不知道,反正取50就好了,也懒得去查为毛了:

loadmore = true;
$(window).scroll(function(){  
    var range = 50;   
    var srollPos = $(window).scrollTop();
    var totalheight = parseFloat($(window).height()) + parseFloat(srollPos);
    if(($(document).height()-range) <= totalheight && loadmore) {
        //ajax方法
    }
}); 

loadmore 来用标识可能滚几次没数据了,就标记为false,这样就不用请求ajax了。range 要取值50。


6. nodejs中使用mongo的like正则查询


 where['name'] = new RegExp(name);

用RegExp来新建正则。就可以模糊查询了。


7. nodejs 中使用mongo的ObjectID查询

我用的是mongoskin第三方库来查询mogo数据。但是,发现一个坑,就是无法使用_id 直接查询,因为mongo里的_id 是ObjectID,所以必须转换,但是mongoskin又没提供这个方法,所以,悲剧,只能npm install mongodb 库,再使用这个ObjectID:

"mongodb": "~1.4.4",


先npm install mpngodb,虽然mongoskin里也加载了,没办法。


再引入mongodb

var ObjectID = require('mongodb').ObjectID;

再使用:

 where['_id'] = new ObjectID(_id);

这样就可以用mongoskin去查询了。

curd.find(where,field,sort,skip,limit,function(data){

}

8. nodejs 使用express 框架如何使用session

首先是必须自己另外去加载一个类库   "express-session": "~1.10.1"  先npm install 。

再在根目录下的app.js 中引入:
var session = require('express-session');

在用app.user 使用下:
app.use(session({
    secret: 'keyboard cat',
    key: 'ssid',
    cookie: { secure: false }
}))

这样就session就生效了。

读和写:

console.log(req.session.name);
req.session.name = 'admin';

其他的方法见官网:https://github.com/expressjs/session


9. jQuery中循环$.each 数组的使用

data = ['湖北','上海','武汉','合肥'];

$.each(data, function(){
     if (this == selected_city) {
             var selected = ' selected ';
     } 
     city.append("<option value='"+this+"'"+ selected + ">"+this+"</option>");   
});

循环出来的this 就是一个个元素值:湖北  上海  武汉  合肥

要是想得到key 值,其实是隐含在data里面的,0,1,2,3,

$.each(data, function(key,value){
    if (key<=5) {
       photos += '<a href="'+this+'" target="_blank"> <img src="'+this+'" height="45px" width="35"></a>';
    }
})
这个时候得到key 就是 0 1 2 3 。value 就是 湖北  上海  武汉  合肥,当然this 也是。






45个实用的JavaScript技巧、窍门和最佳实践

http://blog.csdn.net/kakaxi_77/article/details/40265107 http://blog.jobbole.com/54495/ 需要注...
  • qq_36026721
  • qq_36026721
  • 2017年01月03日 22:53
  • 180

eclipse一些实用小技巧

IDE是我们最常用的工具之一。熟练运用好工具,能很大程度提到生产率。为此,本博主特意将一些遇到的实用的能极大提高生产率的小技巧记录如下。后续会不断补充更新。1.高亮匹配大括号对于c++代码或者java...
  • bitcarmanlee
  • bitcarmanlee
  • 2016年07月09日 19:48
  • 790

各位有什么超实用的生活小窍门呢?

晓黄纹 ,来知乎学姿势,男 2531 人赞同 这些小技巧或者产品,我除了小米149的那个移动电源没用过之外,其余的都是用过觉得好用的产品和小技巧才告诉大家的。 去药店买瓶酒精,平...
  • GarfieldEr007
  • GarfieldEr007
  • 2016年05月25日 16:17
  • 9367

微信小程序开发步骤讲解和实用小技巧

我把自己做小程序的过程稍作总结,还有一些实用技巧分享给大家。对初学者应该有用。 文中提到的登录微信公众号后的功能,都是下图中的其中一个: 文中提到的所有例子都在智能对话小程序里...
  • rolan1993
  • rolan1993
  • 2017年08月03日 12:18
  • 3459

Eclipse日常中最实用的技巧,不看后悔哦!

1、给Eclipse添加更方便的提示功能: 首先,默认情况下,Eclipse默认是通过一个.来进行提示的,这样做有些不太方便,如果随便写一个字母就有对应的提示,可以做如下操作: Windows--pe...
  • weiguolong0306
  • weiguolong0306
  • 2015年10月29日 21:42
  • 4831

使用Unity3D的50个技巧:Unity3D最佳实践

刚开始学习Unity3D时间不长,在看各种资料。除了官方的手册以外,其他人的经验也是非常有益的。偶尔看到老外这篇文章,觉得还不错,于是翻译过来和大家共享。原文地址:http://devmag.org....
  • damenhanter
  • damenhanter
  • 2015年11月03日 23:05
  • 1016

java你所不知道的实用技巧

最近整理了一下过去所学的知道,觉得收获不少,都说学而时习之,不亦说乎。java之中有很多功能不经意之间会被我们遗忘,对此我也整理出来,做下总结,分享给大家,有误之处,希望大家指出批评。 1、Sy...
  • java4found
  • java4found
  • 2013年02月22日 21:12
  • 2143

JavaScript奇淫技巧(一)

if-else简化写法 代码中若出现多层if-else嵌套,代码就会显得臃肿不堪,这时可采用替代方案来浓缩代码。...
  • u010425776
  • u010425776
  • 2016年10月29日 20:21
  • 1223

javascript 编程技巧 很实用

转载自:http://www.cnblogs.com/Moersing/p/4458723.html 1.巧用判断:   在js中,NaN,undefined,Null,0,"...
  • meandmyself
  • meandmyself
  • 2015年07月29日 17:15
  • 211

javaScript开发小技巧(很实用)

1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键  no 可用于Table  2. 取消选取、防止复制  3....
  • xuxiaoxie2012
  • xuxiaoxie2012
  • 2013年02月16日 16:17
  • 93
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:javascript(Nodejs)中的一些实用小技巧
举报原因:
原因补充:

(最多只允许输入30个字)