天天看點

js 一些小技巧 2

ajs 的一些小技巧

(1)傳入一個表單控件(如input輸入框,按鈕)擷取所在的form

js 一些小技巧 2

var getform= function (formelement) {  

           var $that=$(formelement).parent();  

           var max=6;//limit the depth  

           var fieldsetelement=null;//form element  

           var tagname=null;//html tag name  

           while((fieldsetelement=$that.get(0))&&fieldsetelement.tagname!==undefined&&(tagname=fieldsetelement.tagname.tolowercase())!=='form'&&max>0){  

               if(tagname==='fieldset'){//html5 new tag  

                   $that=$(fieldsetelement.form);  

                   break;  

               }  

               $that=$that.parent();  

               max--;  

           }  

           console.log(max);  

           return $that;  

       };  

 完整示例:

js 一些小技巧 2

<!doctype html>  

<html>  

<head lang="en">  

    <meta charset="utf-8">  

    <script type="text/javascript" src="js/jquery-1.11.1.js"></script>  

    <title></title>  

    <script type="text/javascript">  

        var getform = function (formelement) {  

            var $that = $(formelement).parent();  

            var max = 6;//limit the depth  

            var fieldsetelement = null;//form element  

            var tagname = null;//html tag name  

            while ((fieldsetelement = $that.get(0)) && fieldsetelement.tagname !== undefined && (tagname = fieldsetelement.tagname.tolowercase()) !== 'form' && max > 0) {  

                if (tagname === 'fieldset') {//html5 new tag  

                    $that = $(fieldsetelement.form);  

                    break;  

                }  

                $that = $that.parent();  

                max--;  

            }  

            console.log(max);  

            return $that;  

        };  

        var getform22 = function (self) {  

            $form = getform(self);  

            console.log($form);  

        }  

    </script>  

</head>  

<body>  

<div id="login-content">  

    <form id="myform">  

        <div>  

            <div>  

                <div class="inputs">  

                    <input id="username" type="text" name="username" placeholder="使用者名"  

                           required>  

                    <input id="password" type="password" name="password" placeholder="密碼"  

                </div>  

                <div>  

                    <input type="button" id="submit" onclick="getform22(this)"  

                           value="登入">  

            </div>  

        </div>  

    </form>  

</div>  

</body>  

</html>  

(2)js把毫秒轉化為時間

js 一些小技巧 2

var releasedate=new date(number(obj.releasetime)*1000).format('mm-dd  hh:mm');//把毫秒數轉化為日期  

 注意:上述代碼中obj.releasetime的機關是秒(不是毫秒)

(3)把數組拼接為字元串:使用join

js 一些小技巧 2

var html = [];  

       if(data.length2>0){  

           var recordlist=data.recordlist;  

           for(var i=0;i<data.length2;i++){  

               html.push(getbbscommentlistitem(recordlist[i]));  

           $livespanel_ul.append(html.join(''));  

       }  

(4)web app中使用jsonp跨域請求時如何帶上sessionid

跨域通路

在url位址最後面加上;jsessionid=<你的實際sessionid>

執行個體

js 一些小技巧 2

var modi_url='http://'+server_url+'/user/mod_pass?callback=?&password='+old_password_val+"&password2="+new_password_val+";jsessionid="+window.sessionid;  

    console.log&&console.log(modi_url);  

    $.jsonp({url:modi_url,success:function(data){  

        var result=data.result;  

        hidemask2();  

        switch (result)  

        {  

            case 1:  

                user.password=new_password_val;  

                alert("修改成功");  

                $.ui.goback();  

                break;  

            case 23:  

                alert("新密碼不能為空");  

            case 21:  

                alert("請先登入");  

            case 22:  

                alert("兩次密碼不能相同");  

            case 24:  

                alert("密碼已過期,請點選右上角的重新整理按鈕");  

    }});  

 (5)建立數組

(6)判斷對象是否包含指定屬性

'length' in objarr 可以判斷objarr 是否包含length屬性

示例:

js 一些小技巧 2

if (!('length' in objarr)) {// just only single component (not array).  

        objarr.style.display = "block";  

    }else{  

    for ( var i = 0; i < objarr.length; i++) {  

        var objone = objarr[i];  

        objone.style.display = "block";  

    }  

(7)擷取浏覽器類型

jquery-1.11.1.js中沒有了擷取浏覽器的方法,可以添加如下代碼

js 一些小技巧 2

/*** 

 * get browser type 

 * @param jquery 

 */  

var checkbrowser = function (jquery) {  

    if (jquery.browser) return;  

    jquery.browser = {};  

    jquery.browser.mozilla = false;  

    jquery.browser.webkit = false;  

    jquery.browser.opera = false;  

    jquery.browser.msie = false;  

    var nagt = navigator.useragent;  

    jquery.browser.name = navigator.appname;  

    jquery.browser.fullversion = '' + parsefloat(navigator.appversion);  

    jquery.browser.majorversion = parseint(navigator.appversion, 10);  

    var nameoffset, veroffset, ix;  

// in opera, the true version is after "opera" or after "version"  

    if ((veroffset = nagt.indexof("opera")) != -1) {  

        jquery.browser.opera = true;  

        jquery.browser.name = "opera";  

        jquery.browser.fullversion = nagt.substring(veroffset + 6);  

        if ((veroffset = nagt.indexof("version")) != -1)  

            jquery.browser.fullversion = nagt.substring(veroffset + 8);  

// in msie, the true version is after "msie" in useragent  

    else if ((veroffset = nagt.indexof("msie")) != -1) {  

        jquery.browser.msie = true;  

        jquery.browser.name = "microsoft internet explorer";  

        jquery.browser.fullversion = nagt.substring(veroffset + 5);  

// in chrome, the true version is after "chrome"  

    else if ((veroffset = nagt.indexof("chrome")) != -1) {  

        jquery.browser.webkit = true;  

        jquery.browser.name = "chrome";  

        jquery.browser.fullversion = nagt.substring(veroffset + 7);  

// in safari, the true version is after "safari" or after "version"  

    else if ((veroffset = nagt.indexof("safari")) != -1) {  

        jquery.browser.name = "safari";  

// in firefox, the true version is after "firefox"  

    else if ((veroffset = nagt.indexof("firefox")) != -1) {  

        jquery.browser.mozilla = true;  

        jquery.browser.name = "firefox";  

        jquery.browser.fullversion = nagt.substring(veroffset + 8);  

// in most other browsers, "name/version" is at the end of useragent  

    else if ((nameoffset = nagt.lastindexof(' ') + 1) <  

        (veroffset = nagt.lastindexof('/'))) {  

        jquery.browser.name = nagt.substring(nameoffset, veroffset);  

        jquery.browser.fullversion = nagt.substring(veroffset + 1);  

        if (jquery.browser.name.tolowercase() == jquery.browser.name.touppercase()) {  

            jquery.browser.name = navigator.appname;  

// trim the fullversion string at semicolon/space if present  

    if ((ix = jquery.browser.fullversion.indexof(";")) != -1)  

        jquery.browser.fullversion = jquery.browser.fullversion.substring(0, ix);  

    if ((ix = jquery.browser.fullversion.indexof(" ")) != -1)  

    jquery.browser.majorversion = parseint('' + jquery.browser.fullversion, 10);  

    if (isnan(jquery.browser.majorversion)) {  

        jquery.browser.fullversion = '' + parsefloat(navigator.appversion);  

        jquery.browser.majorversion = parseint(navigator.appversion, 10);  

    jquery.browser.version = jquery.browser.majorversion;  

};  

checkbrowser(jquery);  

以上用于jquery.

下面的不是用于jquery的 :

js 一些小技巧 2

 * get browser type and browser version and language 

 when page open,the function will be executed automaticly 

 * @param write22 

 * @returns {{systemlanguage,userlanguage,ver}} 

com.whuang.hsj.getbrowserversion=(function(write22){  

    var browser = {};  

//    console.dir(navigator);  

    var useragent = navigator.useragent.tolowercase();  

    /*for(osvid in navigator){ 

        var value222=navigator[osvid]; 

        document.writeln(osvid+": "+value222+'<br>'); 

    }*/  

    var lang22=navigator.language;  

//    document.writeln(useragent+'<br>');  

//    document.writeln(navigator.appcodename+'<br>');  

    var s;  

    (s = useragent.match(/msie ([\d.]+)/)) ? browser.ie = s[1] : (s = useragent.match(/firefox\/([\d.]+)/)) ? browser.firefox = s[1] : (s = useragent.match(/chrome\/([\d.]+)/)) ? browser.chrome = s[1] :  

        (s = useragent.match(/opera.([\d.]+)/)) ? browser.opera = s[1] : (s = useragent.match(/version\/([\d.]+).*safari/)) ? browser.safari = s[1] : 0;  

    var version = "";  

    if (browser.ie) {  

        version =  browser.ie;  

        if(write22 && write22!=false && write22!='false'){  

            document.writeln('ie<br>');  

        if(!browser.lang ||browser.lang==undefined){  

            lang22=navigator.browserlanguage;  

            browser.systemlanguage=navigator.systemlanguage ;  

            browser.userlanguage=navigator.userlanguage;  

    else  

    if (browser.firefox) {  

        version = browser.firefox;  

        browser.mozilla=browser.firefox;  

            document.writeln('firefox<br>');  

    if (browser.chrome) {  

        version = browser.chrome;  

            document.writeln('chrome<br>');  

    if (browser.opera) {  

        version =  browser.opera;  

            document.writeln('opera<br>');  

    if (browser.safari) {  

        version =  browser.safari;  

            document.writeln('safari<br>');  

    else {  

        version = 'unknown browser';  

    browser.ver=version;  

    if(lang22 && lang22!=undefined)  

    {  

        browser.lang=lang22.tolowercase();  

    return browser;  

})();  

 使用方法:

js 一些小技巧 2

var brow ;  

        if(com.whuang.hsj.getbrowserversion){  

            brow =com.whuang.hsj.getbrowserversion;  

        if(type22=='mid'||type22=='middle'){  

            $("#loadpanel").css("background-image", "url(\"../static/images/loading/loading_middle.gif\")");  

            if(brow&&brow.chrome){//因為在chrome 中有時背景圖檔gif不顯示  

                $("#loading_gif").css("display","block");  

            $("#loading_gif").attr("src", "../static/images/loading/loading_middle.gif");     

        }else if(type22=='small'||type22=='little'){  

            $("#loadpanel").css("background-image", "url(\"../static/images/loading/loading_small.gif\")");  

            $("#loading_gif").attr("src", "../static/images/loading/loading_small.gif");  

        }else{  

            $("#loadpanel").css("background-image", "url(\""+type22+"\")");  

(8)通過name屬性擷取單個元素

js 一些小技巧 2

 * if is radio ,please use com.whuang.hsj.$$arr 

 * @param name22 

 * @returns 

com.whuang.hsj.$$one = function(name22) {  

    if (com.whuang.hsj.ishasvalue(name22)) {  

        var names222=document.getelementsbyname(name22);  

        //alert("names222:"+names222);  

        //alert("typeof:"+(typeof names222 ));  

        var classname=object.prototype.tostring.call(names222);  

        var boolean_isarray;  

        var iehtmlcollection='[object htmlcollection]';  

        if(isietest)//if browser is ie  

                 boolean_isarray=( classname=== '[object object]') ||(classname=== iehtmlcollection) ||names222 instanceof array ;  

        }else  

                 boolean_isarray=( classname=== '[object array]') ||(classname=== '[object nodelist]'  )||(classname==iehtmlcollection)||names222 instanceof array||names222 instanceof nodelist;  

        if(names222){  

             if(boolean_isarray){  

                     return names222[0];  

             }else{  

                     return names222;  

            return "";  

    } else {  

        return "";  

 使用場景:

html代碼:

js 一些小技巧 2

<input id="username" type="text" name="username" placeholder="使用者名"  

 js代碼

js 一些小技巧 2

var username=com.whuang.hsj.$$one("username");  

       alert(username.value);  

(9)字元串source 中是否包含key2

js 一些小技巧 2

com.whuang.hsj.contains=function(source,key2){  

    var isdownload=(source.indexof(key2)>-1);  

    if(isdownload){  

        return true;  

        return false;  

}  

(10)判斷以指定字元串開頭或結尾

js 一些小技巧 2

com.whuang.hsj.startwith=function(str,regex){  

    if(regex==undefined||str==undefined){  

    return str.indexof(regex)==0;  

com.whuang.hsj.endwith=function(str,regex){  

    return str.lastindexof(regex)==str.length-regex.length;  

繼續閱讀