2012-12-05 71 views
0

如何將帶有數據的jQuery對象傳遞給函數?將jquery對象與數據傳遞到函數

例如我有以下目的:

var el = $('#myelement').data('test1','yay1') 
        .data('test2','yay2') 
        .data('test3','yay3'); 

和附加功能處理對象數據:

jQuery.fn.allData = function() { 
    var intID = jQuery.data(this.get(0)); 
    return(jQuery.cache[intID]); 
}; 

function checkIt (myobj){ 
    $.each($(myobj).allData(), function(key, value) { 
    alert(key + "=" + value); 
    }); 
} 

然後我調用checkIt函數並傳遞myelement

checkIt(el); 

但是出了點問題: 類型錯誤:obj爲undefined

回答

1

其實,allData功能是沒有必要做你想做的。 你可以做這樣的事情:

function checkIt (myobj){ 
    $.each(myobj.data(), function(key, value) { 
     alert(key + "=" + value); 
    }); 
} 

myobj.data()會返回一個對象與分配給該元素的所有數據。

+0

謝謝。正是我需要的 – user947668

1

當你調用jQuery.data()一個元素,它返回連接到該元素的所有數據,所以jQuery.fn.allData是多餘的。重寫你的checkIt功能,所以它讀取是這樣的:

function checkIt(myObj) { 
    $.each($.data($(myObj)), function(key, value) { 
    alert(key + "=" + value); 
    }) 
}