function cat() {
this.getMyID = function() { alert(this.id); } ;
}
var bob = new cat();
// I want it to say 'bob'
bob.getMyID();
警报未定义,有什么想法吗?
我会详细说明,这就是我想要做的 - 插入调用另一个函数的按钮的 onclick 方法,例如:
function cat() {
this.render = function() { $('#myButton').attr('onclick', 'this.meow()'); };
}
var bob = new cat();
bob.render();
但是这会失败,因为“this.meow”是无意义的。如果我知道 ID,即。 bob,那么我可以将其更改为 .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()
时添加一个新的点击处理程序。
关于javascript - JQuery/javascript 如何获取对象的 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5380714/