0

你如何将带有数据的 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 is undefined

4

2 回答 2

1

当您调用jQuery.data()一个元素时,它会返回附加到该元素的所有数据,因此jQuery.fn.allData是多余的。重写你的checkIt函数,让它看起来像这样:

function checkIt(myObj) {
  $.each($.data($(myObj)), function(key, value) {
    alert(key + "=" + value);
  })
}
于 2012-12-05T14:27:14.603 回答
1

实际上,该allData功能不是做你想做的事所必需的。你可以这样做:

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

myobj.data()将返回一个对象,其中包含分配给元素的所有数据。

于 2012-12-05T14:27:31.437 回答