javascript小功能

/**
 * 功能说明:     是否为数组
 *
 **/
function isArray(value) {
if(typeof Array.isArray === "function") { 
//ES5新增加的判断数组的方法,IE9+支持
return Array.isArray(value); 
} else { 
return Object.prototype.toString.call(value) === "[object Array]"; 
} 
}
---------------------------------------------------------------------------------
/**
 * 功能说明:     合并数组
 *
 **/

function arrayConnect(array1,array2){

Array.prototype.push.apply(array1,array2);}

---------------------------------------------------------------------------------

/**
 * 功能说明:      邮箱验证
 *
 **/
utils.isEmail=function(str){
    var reg = /^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/;
    return reg.test(str);
}
---------------------------------------------------------------------------------
/**
 * 功能说明:      判断密码强度
 * @param:    val<密码值>
 **/
verifyCheck.pwdStrong = function (val)
{
    var lv = 0;
 if (val.match(/[a-z]/g)) { lv++; }
 if (val.match(/[A-Z]/g)) { lv++; }
 if (val.match(/[0-9]/g)) { lv++; }
 if (val.match(/(.[^a-z0-9A-Z])/g)) { lv++; }
 if (lv > 4) { lv = 4; }
 if (lv === 0) return false;
 return lv;
};

---------------------------------------------------------------------------------

/**
 * 功能说明:     获取属性值
 * @param:    obj<元素> ,attr<属性> 参数不能有空格
* 调用实例: getStyle(oDiv,"maxWidth");

**/

function getStyle(obj,attr) { return obj.currentStyle ?obj.currentStyle[attr]:getComputedStyle(obj)[attr];}

---------------------------------------------------------------------------------

/**
 * 功能说明: 全选
 * @param:

**/

$("#checkboxAll").click(function(){
    var state = $(this).prop('checked');
    $("input:checkbox[name='checkbox']").prop('checked',state);
});

---------------------------------------------------------------------------------

/**
* 功能说明:    IE6浏览器提示
* @param:
* 调用实例: getStyle(oDiv,"maxWidth");

**/
 
     
  <!--[if IE 6]>
 
     
        <script>
 
     
            var fRemindBox = $('<div class="FRemindBox"></div>');
 
     
            var fRemind = $('<div class="FRemind"></div>');
 
     
            var femindInfo = $('<div class="RemindInfo"><span>您的浏览器版本过旧,请升级您的浏览器。</span></div>');
 
     
            var femindLogo = $('<div class="RemindLogo"><a class="ChromeLogo" href="http://www.google.cn/chrome/intl/zh-CN/landing_chrome.html" target="_blank">' +
 
     
                '<img src="/Content/themes/images/ChromeLogo.jpg" /></a><a class="firefoxLogo" href="http://www.firefox.com.cn/download/" target="_blank">' +
 
     
                '<img src="/Content/themes/images/FFLogo.jpg" /></a><a class="ieLogo" href="http://www.iefans.net/" target="_blank">' +
 
     
                '<img src="/Content/themes/images/ieLogo.jpg" /></a></div>');  
 
     
            fRemindBox.append(fRemind.append(femindInfo).append(femindLogo));
 
     
            $("body").prepend(fRemindBox);
 
     
        </script>
 
     
    <![endif]-->

---------------------------------------------------------------------------------

/**
 * 功能说明:   string格式化
 * @param:
* 调用实例:expample var template1="我是{0},今年{1}了"; var result1=template1.format("loogn",22);

**/
 
      
  String.prototype.format = function (args) {
 
      
        var result = this;
 
      
        if (arguments.length > 0) {
 
      
            if (arguments.length == 1 && typeof (args) == "object") {
 
      
                for (var key in args) {
 
      
                    if (args[key] != undefined) {
 
      
                        var reg = new RegExp("({" + key + "})", "g");
 
      
                        result = result.replace(reg, args[key]);
 
      
                    }
 
      
                }
 
      
            }//example   var template2="我是{name},今年{age}了";var result2=template2.format({name:"loogn",age:22});
 
      
            else {
 
      
                for (var i = 0; i < arguments.length; i++) {
 
      
                    if (arguments[i] != undefined) {
 
      
                        var reg = new RegExp("({)" + i + "(})", "g");
 
      
                        result = result.replace(reg, arguments[i]);
 
      
                    }
 
      
                }//expample var template1="我是{0},今年{1}了"; var result1=template1.format("loogn",22);
 
      
            }
 
      
        }
 
      
        return result;

}

---------------------------------------------------------------------------------

/**
 * 功能说明: 判断浏览器是否支持 placeholder属性
 * @param:
* 调用实例:

**/
 
      
 
 
      

          
      
 
      
 function isPlaceholder(){
        var input = document.createElement('input');
        return 'placeholder' in input;
    }

---------------------------------------------------------------------------------

/**
 * 功能说明:分享到新浪微博
 * @param:
* 调用实例:

**/

 

base.sharetosina=function(title,url,picurl)
{
    var picStr=picurl?'&pic='+picurl:"";//图片
  //var sharesinastring='http://v.t.sina.com.cn/share/share.php?title='+encodeURI(title)+'&url='+url+'&content=utf-8&sourceUrl='+url+picStr;
    title="标题  "+escape(title)+" (想看更多?点击创新宝链接:http://www.chuangxb.com)";
  var sharesinastring='http://v.t.sina.com.cn/share/share.php?title='+title;
window.open(sharesinastring,'newwindow','height=400,width=400,top=100,left=100');   
}

---------------------------------------------------------------------------------

/**
 * 功能说明:事件代理

* @param:

* 调用实例:

**/

事件代理时,你能够在事件被DOM绑定后仍然可以添加多个被匹配的元素到其中,而它们同样能够正常工作 

$('#myTable').click(function(e)

{

var clicked = $(e.target);

clicked.css('background','red');

//e'包含了事件的信息,包括了实际接收到click事件的目标元素。我们所要做的就是检查是哪个单元格被点击了。

 

---------------------------------------------------------------------------------

/**
 * 功能说明:data()方法

* @param:

* 调用实例:

**/
 
       
jQuery内置的data()方法存储状态,它可以用来存储key/value类型的数据 
        
 
        
'#myDiv').data('currentState', 'off');
 
        
'.button').click(function() { var menuItem = $(this).parent();var panel = menuItem.find('.panel'); if (menuItem.data('collapsed')) { menuItem.data('collapsed', false); panel.slideDown(); } else { menuItem.data('collapsed', true); panel.slideUp(); } });
 
        
自定义选择器
 
        
':'], { over100pixels: function(a) { return $(a).height() > 100; } }); //创建一个自定义的选择器,它可以找出所有长度超过100px的元素。 $('.box:over100pixels').click(function() { alert('The element you clicked is over 100 pixels high'); });

---------------------------------------------------------------------------------

/**
 * 功能说明:图片已加载完毕

* @param:

* 调用实例:

**/

 

'#myImage').attr('src', 'image.jpg').load(function() { alert('Image Loaded'); });

HTML属性增加JS类

在jQuery加载之后你可以使用方法将”JS”类添加到HTML标签中:

'HTML').addClass('JS');

因为这仅仅发生在javascript有效的时候,如果用户打开JavaScript开关,那么你可以使用它给元素添加上CSS风格:

.JS #myDiv{display:none;}

---------------------------------------------------------------------------------

/**
 * 功能说明:回到顶部按钮

* @param:

* 调用实例:

**/

回到顶部按钮

$(' .top ').click(function (e) {

  e.preventDefault();

'html, body' ).animate({scrollTop: 0}, 800);

});

---------------------------------------------------------------------------------

/**
 * 功能说明:图片预加载

* @param:

* 调用实例:

**/

图片预加载

如果你的网页使用了很多隐藏图片文件(例如:鼠标悬停展示的图片),那么图片的预加载是有意义的:

$.preloadImages = function () {
 
            
  for (var i = 0; i < arguments.length; i++) {
 
            
    $('<img>').attr('src', arguments[i]);
 
            
  }
 
            
};
 
            
$.preloadImages('img/hover-on.png', 'img/hover-off.png');

自动修补破损图像

如果你碰巧发现在你的网站上发现破损的图像链接,一个个去替代他们是痛苦的。这个简单的代码可以节省很多的麻烦:

$('img').on('error', function () {
 
            
  if(!$(this).hasClass('broken-image')) {
 
            
    $(this).prop('src', 'img/broken.png').addClass('broken-image');
 
            
  }
 
            
});

即使你没有任何断开的链接,加入这代码也不会有任何影响。

 

禁用输入

$('input[type="submit"]').prop('disabled', true); // 你需要做的只是需要在输入框上再次运行prop方法,但设置的被禁用值是false:

对地不了解prop函数的jQuery开发者来说,最常使用的是attr函数,但是,在开发例如 checkbox、radio、select时,会发现使用attr无法让属性生效,在遇到要获取或设置checked,selected,readonly和disabled等属性时,用prop方法显然更好

 

 

根据文本获取元素

通过jQuery中的contains()选择器,你能找到一个元素内的文本内容。如果文本不存在,则这个元素将被隐藏:

var search = $('#search').val();

$('div:not(:contains("' + search + '"))').hide();

可见变化的触发

当用户不再聚焦或者重新聚焦一个标签时触发javascript脚本:

$(document).on 
             ( 
             'visibilitychange' 
             ,  
             function  
             ( 
             e 
             ) {
 
            
  if (e.target.visibilityState === "visible") {
 
            
    console.log('Tab is now in view!');
 
            
  } else if (e.target.visibilityState === "hidden") {
 
            
    console.log('Tab is now hidden!');
 
            
  }
 
            
});

浅析Prototype的模板类--Template

var str = '#{what.name} may have gone, but there is a time of #{how}';var object = { 
             
what : {
                name : 'Swallows'
            }, 
             how : 'return'
}
var template_1 = new Template(str);
var result = template_1.evaluate(object);
console.log('result:',result);
//输出:'Swallows may have gone, but there is a time of return'

---------------------------------------------------------------------------------

/**
 * 功能说明:isFunction()兼容IE等各浏览器

* @param:

* 调用实例:

**

function IsFunction(fn){
    if(!fn)return false;
    var s="toString", v="valueOf",
     t=typeof fn[s]==="function" && fn[s],
     o=typeof fn[v]==="function" && fn[v],
 r;
 if(t) delete fn[s];
 if(o) delete fn[v];
 r=typeof fn !=="string" && !(fn instanceof String)&& !fn.nodeName && fn.constructor !=Array && /^[\s[]?function/.test(fn+"");
 if(t) fn[s]=t;
 if(o) fn[v]=o;
 return r;
}

---------------------------------------------------------------------------------

/**
 * 功能说明:倒计时跳转

* @param:
 
              
* 调用实例:
 
              
**/
 
            
<span id="tiao">10</span>秒后系统会自动跳转到佰腾网首页
 
            

                function countDown(secs) { 
             
 
             

                       if (--secs > 0) { 
             
 
             

                           $("#tiao").text(secs); 
             
 
             

                           setTimeout("countDown(" + secs + ")", 1000); 
             
 
             

                       }  
             
 
             

                       else { 
             
 
             

                           location.href = "http://www.baiten.cn/"; 
             
 
             

                       } 
             
 
             

                   }

---------------------------------------------------------------------------------

/**
 * 功能说明:统计字符串个数

* @param:

* 调用实例:

**/

 "abcdedftdaaafddddfer".split('').reduce((left, right) => { console.log(left,right);left[right] ? left[right]++ : left[right]=1 ; return left}, {})