javascript - JQuery/javascript 如何获取对象的 ID?

标签 javascript jquery

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,即。 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/

相关文章:

javascript - jQuery:使 div 可点击以检查嵌套的复选框

javascript - 如果选中,则显示/隐藏 UL 子项

javascript - 如何使用dust.js在服务器和客户端上编写模板

javascript - 使用回调将两个数字相加和相乘

javascript - 将值附加到 JQuery 中的输入字段

asp.net-mvc - jQuery.Load() 不触发 ASP.NET MVC2 中的 Request.IsAjaxRequest

javascript - 使用Ajax在另一个页面上显示输入值

javascript - Busboy不会收到上传的文件

javascript - 如何在 angular js 的 cookie 中存储登录 session ID?

javascript - 字符串不是 Coffeescript 中的函数