【问题标题】:passing jquery object with data to function将带有数据的 jquery 对象传递给函数
【发布时间】:2012-12-05 14:16:49
【问题描述】:

如何将带有数据的 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 未定义

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    实际上,allData 函数并不是你想要的。 你可以这样做:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2020-11-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-10
        • 2011-06-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多