javascript-jquery筆記

array

1.判斷是否是一個數組對象

function isArray(arg){
    return Object.prototype.toString.call(arg) === '[object Array]';
}

2.根據對象的屬性排序

function arraySortByAttribute(array, param, sortType){
    if(!(isArray(array) && ((sortType === "asc") || (sortType === "desc")))){
        alert("不正確的調用格式!");
        return array;
    }
    var arrayLen = array.length;
    for(var i = 0; i < arrayLen; i++){
        var obj1 = array[i];
        var paramValue1 = eval("obj1." + param);
        var paramValue2;
        for(var j = i + 1; j < arrayLen; j++){
            var obj2 = array[j];
            paramValue2 = eval("obj2." + param);
            switch(sortType){
                case "asc":
                    if(paramValue1 > paramValue2){
                        paramValue1 = paramValue2;
                        var temp     = array[i];
                            array[i] = array[j];
                            array[j] = temp;
                    }
                    break;
                case "desc":
                    if(paramValue1 < paramValue2){
                        paramValue1 = paramValue2;
                        var temp     = array[i];
                            array[i] = array[j];
                            array[j] = temp;
                    }
                    break;
                default:
                    alert("程序有誤,請聯繫管理員![arraySortByAttribute]");
                    break;
            }

        }
    }
    return array;
}

Object

1.動態讀取object屬性的值
var obj={
            obj1:{
                obj2:{
                    obj3:2,
                    'me':'testxxx'         
                }
            }
        }
var value1 = eval("obj.obj1.obj2['me']");
var value2 = eval("obj.obj1.obj2.obj3");
//打印輸出結果:
    value1: testxxx
    value2: 2

Jquery

not() is() :not()的區別

列表內容

jquery第一個插件的框架,未完成

if (window.jQuery)(function ($) {
        "use strict";
        function dialog(openedBy){
            var diag = new Dialog();
            var id = '#' + openedBy;
            var data = $(id).data("data");
            var curVal, zh_CN, zh_TW, pt;
                curVal = $(id).prev().val();

            diag.Width = 241;
            diag.Height = 126;
            diag.Title = "d";
            diag.InvokeElementId="myTable";
            diag.openedBy = openedBy || "";
            diag.OKEvent = function(){

                zh_CN = $("#zh_CN9wsak").val();
                zh_TW = $("#zh_TW9wsak").val();
                pt    = $("#pt9wsak").val();

                switch(language){
                    case "zh_CN":
                        $(id).prev().val(zh_CN);
                        break;
                    case "zh_TW":
                        $(id).prev().val(zh_TW);
                        break;
                    case "pt":
                        $(id).prev().val(pt);
                        break;
                    default:
                        break;
                }

                var obj = {};
                obj.zh_CN = zh_CN;
                obj.zh_TW = zh_TW;
                obj.pt    = pt;
                $(id).data("data", obj);
                diag.close();
            };
            diag.CancelEvent = function(){
                diag.close();
            };
            diag.show();


            if(isNull(data)){
                $("#zh_CN9wsak").val("");
                $("#zh_TW9wsak").val("");
                $("#pt9wsak").val("");
            }else{
                $("#zh_CN9wsak").val(data.zh_CN);
                $("#zh_TW9wsak").val(data.zh_TW);
                $("#pt9wsak").val(data.pt);
            }
            switch(language){
                case "zh_CN":
                    $("#zh_CN9wsak").val(curVal);
                    break;
                case "zh_TW":
                    $("#zh_TW9wsak").val(curVal);
                    break;
                case "pt":
                    $("#pt9wsak").val(curVal);
                    break;
                default:
                    break;
            }
        }

        $.fn.ManyLanguageDialog = function (options) {
            if (typeof options == "string") {
                options = {language: options};
            };

            var options = $.extend({} ,
                $.fn.ManyLanguageDialog.options ,
                options || {}
            );

            var ManyLanguageDialog = {
                e: this,
                E: $(this),
                clone: $(this).clone()
            };

            this.each(function(){
                $(this).click(function(){
                    dialog($(this).attr("id"));
                });

            });
        };

        $.fn.ManyLanguageDialog.options = {
                language: "zh_CN",
            }; 
        })(jQuery);


    $(function () {
        $("input[type=button]._ManyLanguageDialog").ManyLanguageDialog();
    });

    $(function(){
        $("#testBtn1").click(function(){
            language = "zh_TW";
        });
    });

取值:
1.id下input下的name

var array = $('#div2 input[name="myInput"]');
                $.each(array, function(){
                    console.log("data:" + $(this).val());
                });

checkbox

1、獲取單個checkbox選中項(三種寫法)
$("input:checkbox:checked").val()
或者
$("input:[type='checkbox']:checked").val();
或者
$("input:[name='ck']:checked").val();
2、 獲取多個checkbox選中項
$('input:checkbox').each(function() {
        if ($(this).attr('checked') ==true) {
                alert($(this).val());
        }
});
3、設置第一個checkbox 爲選中值
$('input:checkbox:first').attr("checked",'checked');
或者
$('input:checkbox').eq(0).attr("checked",'true');
4、設置最後一個checkbox爲選中值
$('input:radio:last').attr('checked', 'checked');
或者
$('input:radio:last').attr('checked', 'true');
5、根據索引值設置任意一個checkbox爲選中值
$('input:checkbox).eq(索引值).attr('checked', 'true');索引值=0,1,2....
或者
$('input:radio').slice(1,2).attr('checked', 'true');
6、選中多個checkbox同時選中第1個和第2個的checkbox
$('input:radio').slice(0,2).attr('checked','true');
7、根據Value值設置checkbox爲選中值
$("input:checkbox[value='1']").attr('checked','true');
8、刪除Value=1的checkbox
$("input:checkbox[value='1']").remove();
9、刪除第幾個checkbox
$("input:checkbox").eq(索引值).remove();索引值=0,1,2....
如刪除第3個checkbox:
$("input:checkbox").eq(2).remove();
10、遍歷checkbox
$('input:checkbox').each(function (index, domEle) {
//寫入代碼
});
11、全部選中
$('input:checkbox').each(function() {
        $(this).attr('checked', true);
});
12、全部取消選擇
$('input:checkbox').each(function () {
        $(this).attr('checked',false);
});

zDialog自定義按鈕的綁定

Dialog.getDialogBtnId = function(dialogId){
    var parentId = $('#' + dialogId).parent().attr("id");
    var No = parentId.substring(getStrLength("_Container_"), getStrLength(parentId));
    var okAndCancelBtnId = {};
        okAndCancelBtnId.okBtn = "#_ButtonOK_" + No;
        okAndCancelBtnId.cancelBtn = "#_ButtonCancel_" + No;
    return okAndCancelBtnId;
}

一個很好用的正則表達式

queryString = function(url, val) 
{ 
    var re = new RegExp("" +val+ "=([^&?]*)", "ig"); 
    return ((url.match(re))?(url.match(re)[0].substr(val.length+1)):null); 
} 

javascript 傳遞 this

(function(){
        function sum(num1, num2){
            sum = num1 + num2 + this.kk;
            alert("sum:" + sum);//輸出的結果是13
            return sum;
        }
        var b = function(){
            sum.call({kk: 10}, 1, 2);
        }

        b();
    })();

window下好用的命令

sysdm.cpl
powercfg.cpl

javascript中一種高級的寫法,當對象不存在時,給定一個空的對象

a.events || a.events={}

FIT,集成測試框架
http://fit.c2.com

關於JSON

$.parseJSON(str)或JSON.parse(str)
JSON.stringify()

判斷是否爲數組

function isArrayFn(value){
    if (typeof Array.isArray === "function"){
        return Array.isArray(value); 
    }else{
        return Object.prototype.toString.call(value) === "[object Array]"; 
    }
}

判斷是否是一個函數

(typeof(typeof(g_org_chart)=="object"?g_org_chart.getData:null) == "function") ? g_org_chart.getData() : null ;

p標籤內容溢出
參考:
http://zhidao.baidu.com/link?url=VL1Gk2oOg1MJqYqpz2VLxpAVlk4B5qt4acaDeom8MeJ6OkiavEJAeM2fW-W9aGfJRjBza5b3f8P_9Rr_NMjToK

在css裏寫上 word-break:break-all 強制換行
或 overflow:hidden 隱藏超出部分
h2標籤在空格和其它符號間會自動換行,加 white-space: nowrap;  就不會自動換行啦

日期處理

    var str ='2012-08-12';
    str = str.replace(/-/g,"/");
    var date = new Date(str );
    alert(date);

判斷IE11
引用自:http://zhidao.baidu.com/link?url=x8wRm3EllTlUZrrcOqg_1wO6vwq90c6h77vI3nbzFvcPJy_atfDIaFbO7tKZq8NHafZ7LwqPW0qz_Wo_a25-v9RhfHxtWi3rkaOTxr6hUaq

<script type="text/javascript">  
                var userAgent = navigator.userAgent,   
                rMsie = /(msie\s|trident.*rv:)([\w.]+)/,   
                rFirefox = /(firefox)\/([\w.]+)/,   
                rOpera = /(opera).+version\/([\w.]+)/,   
                rChrome = /(chrome)\/([\w.]+)/,   
                rSafari = /version\/([\w.]+).*(safari)/;  
                var browser;  
                var version;  
                var ua = userAgent.toLowerCase();  
                function uaMatch(ua) {  
                    var match = rMsie.exec(ua);  
                    if (match != null) {  
                        return { browser : "IE", version : match[2] || "0" };  
                    }  
                    var match = rFirefox.exec(ua);  
                    if (match != null) {  
                        return { browser : match[1] || "", version : match[2] || "0" };  
                    }  
                    var match = rOpera.exec(ua);  
                    if (match != null) {  
                        return { browser : match[1] || "", version : match[2] || "0" };  
                    }  
                    var match = rChrome.exec(ua);  
                    if (match != null) {  
                        return { browser : match[1] || "", version : match[2] || "0" };  
                    }  
                    var match = rSafari.exec(ua);  
                    if (match != null) {  
                        return { browser : match[2] || "", version : match[1] || "0" };  
                    }  
                    if (match != null) {  
                        return { browser : "", version : "0" };  
                    }  
                }  
                var browserMatch = uaMatch(userAgent.toLowerCase());  
                if (browserMatch.browser) {  
                    browser = browserMatch.browser;  
                    version = browserMatch.version;  
                }  
                document.write(browser+version);          
                    </script>

javascript 閉包

$(document).ready(function () {
    for (var i = 0; i < 5; i++) {
        (function (value) {
            $('<div>Print ' + value + '</div>')
            .click(function () {
                alert(value);
            }).insertBefore('#results');
        })(i);
    }
});

javascript傳遞jquery this

 <input class="chkChk" type="checkbox" οnclick="holidayChkAll($(this));"/>
                                        <h:outputText value="#{msg['holiday']['holiday']}"/>

function holidayChkAll($This){
                alert("this prop:" + $This.prop("checked"));
            }
JavaScript停止事件冒泡和取消事件默認行爲?
功能:停止事件冒泡  

function stopBubble(e) {

    // 如果提供了事件對象,則這是一個非IE瀏覽器

    if ( e && e.stopPropagation ) {

        // 因此它支持W3C的stopPropagation()方法 

        e.stopPropagation();

    } else { 

        // 否則,我們需要使用IE的方式來取消事件冒泡

        window.event.cancelBubble = true;

    }

}

 功能:阻止事件默認行爲

function stopDefault( e ) {

     // 阻止默認瀏覽器動作(W3C)

     if ( e && e.preventDefault ) {

         e.preventDefault();

     } else {

        // IE中阻止函數器默認動作的方式

        window.event.returnValue = false;

    }

    return false;

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章