无法在jquery中获取调用元素的ID

时间:2014-02-05 07:01:56

标签: javascript jquery html

我需要获取调用函数的元素的id, 我有这样的div,

<div id="MainDiv"></div>

下面是jQuery代码, 当我保留一个断点并输入this时,我会得到有关div的信息,但我不知道如何得到它的id,即this.id

$(document).ready(function () {
    $("#MainDiv").Scrollit();
});
$.fn.Scrollit = function (e) {
    alert(this.id);
};

1 个答案:

答案 0 :(得分:3)

插件this内部是指jQuery对象,而不是dom元素,因此它没有id属性。

您可以使用.each()遍历jQuery对象并获取每个元素的属性 - 因为插件可以在包含多个元素的集合上初始化

$.fn.Scrollit = function (e) {
    this.each(function () {
        alert(this.id)
    })
};

演示:Fiddle

尽管指点很少

如果您正在开发插件,请不要依赖于元素的id,使用选项或数据属性来传递信息

还返回jQuery对象以启用链接

$.fn.Scrollit = function (e) {
    return this.each(function () {
        alert(this.id)
    })
};