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判断