JQuery/javascript如何获取对象的ID?
警报未定义,有什么想法吗 我会详细说明,这就是我想要做的-在按钮的onclick方法中插入调用另一个函数的内容,例如:JQuery/javascript如何获取对象的ID?,javascript,jquery,Javascript,Jquery,警报未定义,有什么想法吗 我会详细说明,这就是我想要做的-在按钮的onclick方法中插入调用另一个函数的内容,例如: function cat() { this.getMyID = function() { alert(this.id); } ; } var bob = new cat(); // I want it to say 'bob' bob.getMyID(); 然而,这将失败,因为“this.meow”是胡说八道。如果我知道ID,即bob,那么我可以将其更改为d
function cat() {
this.getMyID = function() { alert(this.id); } ;
}
var bob = new cat();
// I want it to say 'bob'
bob.getMyID();
然而,这将失败,因为“this.meow”是胡说八道。如果我知道ID,即bob,那么我可以将其更改为do.attr('onclick',theID+'.meow()');}代码>通用“对象”没有ID-它们不知道绑定到它们的变量是什么
此外,你可以说:
function cat() {
this.render = function() { $('#myButton').attr('onclick', 'this.meow()'); };
}
var bob = new cat();
bob.render();
这时你就有了一只精神分裂症猫。一般的“对象”没有ID——它们不知道绑定到它们的变量是什么
此外,你可以说:
function cat() {
this.render = function() { $('#myButton').attr('onclick', 'this.meow()'); };
}
var bob = new cat();
bob.render();
此时您有一只精神分裂症猫。它会发出警报未定义
,因为猫没有“id”属性。不确定您希望它如何具有id。它会发出警报未定义
,因为cat没有“id”属性。不确定您希望它如何具有id。关于您的更新:
假设cat
有一个方法meow
,您应该执行以下操作:
var bob = new cat();
var alice = bob;
您已经有了对象的引用(this
),不需要知道它存储在哪个变量中
您还应该使用jQuery的click
函数来分配一个click处理程序。但是要小心,因为这会在每次调用有关更新的render()
时添加新的单击处理程序:
假设cat
有一个方法meow
,您应该执行以下操作:
var bob = new cat();
var alice = bob;
您已经有了对象的引用(this
),不需要知道它存储在哪个变量中
您还应该使用jQuery的click
函数来分配一个click处理程序。但是要小心,因为这会在每次调用render()
时添加一个新的单击处理程序,我将尝试
我会详细说明的,这就是我想要的
do-插入到的onclick方法中
一个按钮可以调用另一个按钮
功能
这里有一些代码。。。离这儿近吗
function Cat() {
var that = this;
this.render = function() {
$('#myButton').click(function() {
that.meow();
});
};
}
// assuming it exists something like
Cat.prototype.meow = function() {/*...*/};
或
我会试试
我会详细说明的,这就是我想要的
do-插入到的onclick方法中
一个按钮可以调用另一个按钮
功能
这里有一些代码。。。离这儿近吗
function Cat() {
var that = this;
this.render = function() {
$('#myButton').click(function() {
that.meow();
});
};
}
// assuming it exists something like
Cat.prototype.meow = function() {/*...*/};
或
您可以使用闭包:
$("buttonname").click(bobthefunction);
顺便说一下,不建议使用.attr附加事件处理程序-它并不总是适用于所有浏览器/案例。最好使用.bind或类似的快捷方式。单击可以使用闭包:
$("buttonname").click(bobthefunction);
顺便说一下,不建议使用.attr附加事件处理程序-它并不总是适用于所有浏览器/案例。最好使用.bind或类似的快捷方式。单击这与jQuery有什么关系?答案可能是@SLC:请解释一下您认为jQuery是如何关联的?您的数据库中没有一行jQuerycode@Juan我已经包含了JQuery库,可以接受JQuery解决方案吗?@SLC:你的问题与JQuery无关,除非你创建了一个id属性,否则JS对象没有id属性。这与JQuery有什么关系?答案可能是@SLC:请解释一下您认为jQuery是如何关联的?您的数据库中没有一行jQuerycode@Juan我已经包含了JQuery库,可以接受JQuery解决方案吗?@SLC:你的问题与JQuery无关,除非你创建一个id属性,否则JS对象没有id属性。传入参数的自调用函数不太容易阅读,特别是那些还没有看到这种模式的人。正如其他人提到的,将其存储为内部处理程序可以访问的闭包变量更容易。在您的情况下,您只需执行var self=this在调用this.render=function()
@Andrey:我希望你没有忘记理解——我并不是说这是错误的,或者有更好的方法。。。只是它伤了我的大脑。@Juan-你是对的;我太习惯于使用闭包的“静态”对象,因为我不能有闭包变量,所以我忽略了显而易见的here@Hogan-我知道,它也曾困扰我的大脑,直到我不得不使用闭包数千次;现在,这就像阅读儿童读物:)一个传入参数的自调用函数并不容易阅读,特别是对于那些还没有看到这种模式的人来说。正如其他人提到的,将其存储为内部处理程序可以访问的闭包变量更容易。在您的情况下,您只需执行var self=this在调用this.render=function()
@Andrey:我希望你没有忘记理解——我并不是说这是错误的,或者有更好的方法。。。只是它伤了我的大脑。@Juan-你是对的;我太习惯于使用闭包的“静态”对象,因为我不能有闭包变量,所以我忽略了显而易见的here@Hogan-我知道,它也曾困扰我的大脑,直到我不得不使用闭包数千次;现在就像读儿童读物:)