为什么我不能访问这里的元素(jQuery插件)

时间:2013-04-21 19:39:54

标签: jquery design-patterns object plugins

我正在尝试一种编写jQuery插件的新方法。

var $detailbox = $('.detailBox') ;

TargetList.init($detailbox);

TARGETLIST:

TargetList = {

    init: function (elem) {

        console.log($(elem));

    }
};

elem将返回:

[section#detailBox. detailBox, selector: ".detailBox", context: document, jquery: "1.9.1", constructor: function, init: function…]

第一个问题:这是什么?

其次,更重要的问题:为什么element.id会返回undefined?

我的猜测是,我不能简单地将n个对象传递给init()方法并期望我可以控制它? 但是我怎么能这样做,假设我想保持这种结构?

2 个答案:

答案 0 :(得分:1)

console.log($(elem));这只是在控制台上打印jquery对象。

并且看着这个:

[section#detailBox. detailBox, selector: ".detailBox", context: document, jquery: "1.9.1", constructor: function, init: function…]

显示您已成功将元素传递给init

访问ID:

尝试

$(elem).attr('id');

答案 1 :(得分:1)

记录的对象是jQuery Object

对于第二个问题,id is not a method of jQuery。它是DOM object的属性。

所以试试这个

$(elem)[0].id $(elem).attr('id')