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 に答える