Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQuery/javascript如何获取对象的ID?_Javascript_Jquery - Fatal编程技术网

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

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

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

我会详细说明,这就是我想要做的-在按钮的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,那么我可以将其更改为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=thisthis.render=function()
@Andrey:我希望你没有忘记理解——我并不是说这是错误的,或者有更好的方法。。。只是它伤了我的大脑。@Juan-你是对的;我太习惯于使用闭包的“静态”对象,因为我不能有闭包变量,所以我忽略了显而易见的here@Hogan-我知道,它也曾困扰我的大脑,直到我不得不使用闭包数千次;现在,这就像阅读儿童读物:)一个传入参数的自调用函数并不容易阅读,特别是对于那些还没有看到这种模式的人来说。正如其他人提到的,将其存储为内部处理程序可以访问的闭包变量更容易。在您的情况下,您只需执行
var self=thisthis.render=function()
@Andrey:我希望你没有忘记理解——我并不是说这是错误的,或者有更好的方法。。。只是它伤了我的大脑。@Juan-你是对的;我太习惯于使用闭包的“静态”对象,因为我不能有闭包变量,所以我忽略了显而易见的here@Hogan-我知道,它也曾困扰我的大脑,直到我不得不使用闭包数千次;现在就像读儿童读物:)