Javascript JQuery:查找创建DOM元素的对象

Javascript JQuery:查找创建DOM元素的对象,javascript,jquery,dom,Javascript,Jquery,Dom,所以我一整天都在做这件事,我不知道如何让它工作。我有一个包含TD的表,其中填充了使用JQuery getJSON命令从数据库中提取的内容。我有一个事件处理程序设置,这样当您双击一个TD元素时,它的内容将成为一个输入元素,默认值为包含TD以前的内容 INPUT元素是在名为INPUT的Javascript对象内创建的,如下所示: var Input = function() { var obj = this; obj.docElement = $('<input/>').

所以我一整天都在做这件事,我不知道如何让它工作。我有一个包含TD的表,其中填充了使用JQuery getJSON命令从数据库中提取的内容。我有一个事件处理程序设置,这样当您双击一个TD元素时,它的内容将成为一个输入元素,默认值为包含TD以前的内容

INPUT元素是在名为INPUT的Javascript对象内创建的,如下所示:

var Input = function() {
    var obj = this;
    obj.docElement = $('<input/>').attr('type', 'text').val(obj.defaultValue);
}
这在您第一次编辑字段时效果很好;但是,如果多次编辑字段,它将停止工作。另外,如果你随机双击TD,它最终会崩溃。我测试了它并确定输入元素停止注册任何类型事件,就好像绑定不再存在于其上一样

我在谷歌上搜索了很多次,发现放在输入元素上的常规JQuery绑定处理程序不可靠。因此,我决定使用以下方法将事件处理程序附加到文档对象:

$(obj.docElement).bind('keydown', function(e) {
    if(e.which == 13) {
        // do something
    }
}
$(document).bind('keydown', function(e) {
    // do something
}
我知道我可以使用e.target来获取执行操作的目标元素,这对我来说很有效,e.target正确地引用了输入元素

我的问题是,如何获取首先创建输入元素的对象?我需要能够执行包含在相应输入中的函数 类,该类用于创建输入元素。我需要从$document.bind函数中调用这些函数。所以基本上我需要能够获得输入元素的父/创建者输入对象

如果我解释得不够清楚,就告诉我。在此问题上的任何帮助都将不胜感激!除了使用$document.bind之外,我还愿意接受其他方法的建议


谢谢

我想我理解这个问题

您可以遍历DOM来查找父文档元素,但这不是您的意思,对吗?您需要一个父脚本元素,该元素具有一组对该元素进行操作的逻辑


我猜想在创建输入元素时,向父元素提供某种引用可能是最容易的。。。将其传递给事件处理程序,或将其设置在全局可访问的位置,如当前元素父变量。

我同意tobyhede。您可以向引用父元素的输入元素添加自定义属性,也可以在内存中保留一个映射,将动态创建的输入元素映射到创建它的父元素。当您捕获返回键时,只需从映射中删除该关系,以便在用户再次单击时可以再次添加该关系。

非常感谢!在阅读了您的答案之后,我最终决定使用嵌套for in循环遍历我的对象层次结构,并对照传递的e.target元素检查每个输入对象的文档元素。也许不是最有效的方法,但现在一切都正常了!再次感谢!