jQuery - 如何在数据对象函数中获取元素

时间:2012-07-21 02:16:47

标签: jquery

有没有办法将元素放在一个被设置为元素“数据”的对象中的函数内?如果没有,有哪些替代方法可以实现这一点?

var m = function(options){
     // Some initialization code here
}

m.prototype.doSomething: function() {
    // How do i get the #an_element here?
}

$("#an_element").data('myObject', m);

2 个答案:

答案 0 :(得分:0)

我假设你在#an_element中存储了一个类或id,即选择器。试试这个:

var m = function(options){
     // Some initialization code here
}

m.prototype.doSomething: function() {
    var selector = $("#an_element").data('myObject');
    var required_element = $(selector);
}

$("#an_element").data('myObject', m);

答案 1 :(得分:0)

最简单的方法就是将该元素赋予构造函数,您可以在jsfiddle上进行检查。

var m = function(options){
     // Some initialization code here
    $.extend(this, options);
}

m.prototype.doSomething= function() {
    // How do i get the #an_element here?
    var _this=this;
    if(_this.el && _this.el.length){
        _this.el.css({color:"black"}); 
    }
}
$(function(){
    var $el=$("#an_element");
    $el.data('myobject', new m({el:$el}));
    $el.click(function(){
        var nn=$(this).data("myobject");
        nn.doSomething();
        return false;
    });
});

你所做的错误就是你试图将函数本身放入数据中,但你必须在此之前创建一个对象:$("#an_element").data('myObject', new m());