[英]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();
警报未定义,有什么想法吗?
我将详细说明,这是我想做的-将调用另一个函数的内容插入按钮的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.