繁体   English   中英

jQuery / javascript如何获取对象的ID?

[英]JQuery/javascript how do I get the ID of an object?

function cat() {


    this.getMyID = function() { alert(this.id); } ;

}

var bob = new cat();

// I want it to say 'bob'
bob.getMyID();

http://jsfiddle.net/n7eHj/

警报未定义,有什么想法吗?

我将详细说明,这是我想做的-将调用另一个函数的内容插入按钮的onclick方法中,例如:

function cat() {

   this.render = function() { $('#myButton').attr('onclick', 'this.meow()'); };

}

var bob = new cat();
bob.render();

但是,这将失败,因为“ this.meow”是胡说八道。 如果我知道ID,即。 鲍勃,那么我可以将其更改为.attr('onclick', theID + '.meow()'); }; .attr('onclick', theID + '.meow()'); };

关于您的更新:

假设cat有一个meow方法,您应该执行以下操作:

function Cat() {
   var that = this;
   this.render = function() { 
       $('#myButton').click(function() {
           that.meow();
       });
   };
}

// assuming it exists something like
Cat.prototype.meow = function() {/*...*/};

您已经有了对对象( this )的引用,无需知道它存储在哪个变量中。

您还应该使用jQuery的click函数来分配点击处理程序。 但请注意,因为这将在每次调用render()时添加一个新的单击处理程序。

通用“对象”没有ID-它们不知道将哪些变量绑定到它们。

此外,您可能会说:

var bob = new cat();
var alice = bob;

在这一点上,您有一只精神分裂症猫。

它警告undefined因为cat没有“ id”属性。 不确定您如何希望它具有ID。

我会尝试...

我会详细说明,这就是我想要做的-在按钮的onclick方法中插入调用另一个函数的内容,

这是一些代码...接近吗?

var bobthefunction = function () {
    // do crazy stuff
   }

$("buttonname").attr("onclick",bobthefunction);

要么

$("buttonname").click(bobthefunction);

您可以做的是使用闭包:

function cat() {
    this.render = function() 
    { 
        $('#myButton').click(function(self ) 
        {
            return function() { self.meow() }
        }(this));
    }
}

顺便说一句,不建议使用.attr附加事件处理程序-它并非总是在所有浏览器/案例中都适用。 您最好使用.bind甚至是.click之类的快捷方式

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM