js 小小tips

1,var a = new Date("2016/08/08").getTime()

  var b = new Date("2016-08-08").getTime()两者不同 坑~~~

1,双引号单引号多级嵌套:“  ‘  \"aaa\"  '  "

2,input设置只能输入数字 <input οnkeyup='(this.v=function(){this.value=this.value.replace(/[^0-9-]+/,\" \");}).call(this)' οnblur='this.v()'/> 

3, div  本身没有focus blur事件,但是给div添加一个属性即可:tabindex='1'

4,仿placeholder:

var inputcheck=function(ele){

ele.focus(function(e){

with(e.target)

if(value==defaultValue){

value=''

}

$(this).css('color','#333');

});

ele.blur(function(e){

with(e.target)

if(value==""){

value=defaultValue;

}

$(this).css('color','#c8c8c8');

});

}

上面这种方法无法适用type:password之类的,可生成label根据定位伪装

//placeholder兼容
var placeholderSupport = function(){
    var attr = "placeholder";
    var input = document.createElement("input");
    return attr in input;
};
var support=placeholderSupport();
if(!support){
    $('input[placeholder]').each(function(){
        MJO.inputCheck($(this),10,15);
    })
}

MJO.inputCheck=function(element,eleLeft,eleTop){
    var defaultVal=element.attr('placeholder'),
        $label = $('<label>', {
        html: element.val() ? '' : defaultVal,
        //'for': elementId,
        css:
        {
            position: 'absolute',
            cursor: 'text',
            color: '#cacdcf',
            fontSize: element.css('fontSize'),
            left:eleLeft,
            top:eleTop
        }
    }).insertAfter(element);
    var _resetPlaceholder = function () {
        if (element.val()) {
            $label.html(null);
        }else {
            $label.html(defaultVal);
        }
    };
    _resetPlaceholder();
    var _clearPlaceholder=function(){
        $label.html(null);
    };
    element.on('blur',_resetPlaceholder);
    element.on('focus',_clearPlaceholder);

};

5,$('aa')[0] 是dom元素 转换为jquery元素需要在外层加  $(  $('aa')[0]  )

6, str = str.replace(/[]/g,'');

7,if(aaa==underfind){。。。}   //aa如果为空或者未定义则执行 ===仅仅是underfind   ===可避免隐式转换

8,for (var i = 0; i < 5; i++) {
     function() {
        console.log(i);
    }();
}

会报错,需要在function前面加!(或者+,~等一元符号) 或者在function外层加()包起来

如果没有这个加号的话,解析器会认为function是一个函数声明的开始,而后面()将会导致语法错误。在function前面加上+号时,就变成了一个函数表达式,而函数表达式后面又添加了一个()就变成了一个立即执行的函数了。

(function(){})()

()是运算符
(表达式)则表达式的结果将会返回
(function(){...})这样就返回了一个函数
 当 ()和函数连接在一起的时候 则表示 函数执行
(function(){...})()  一前一后2个括号 就是调用里面的函数让他执行

 

9,input 中文输入法开始输入和结束输入事件:compositionstart compositionend.

10,js用a==1 && b=2可在前者为true时方执行后者  但前者如果为0整个结果为0;var e = 0 && 3 最终e为0;注意 如果存在前者为0的可能性只能用if判断



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值