如何将带有数据的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);
但出了点问题: TypeError:obj未定义
答案 0 :(得分:1)
当您在元素上调用jQuery.data()
时,它会返回附加到该元素的所有数据,因此jQuery.fn.allData
是多余的。重写您的checkIt
函数,使其显示如下:
function checkIt(myObj) {
$.each($.data($(myObj)), function(key, value) {
alert(key + "=" + value);
})
}
答案 1 :(得分:1)
实际上,allData
功能不是你想要的。
你可以这样做:
function checkIt (myobj){
$.each(myobj.data(), function(key, value) {
alert(key + "=" + value);
});
}
myobj.data()
将返回一个对象,其中包含分配给该元素的所有数据。