如何使用jQuery从动态生成的表单元素获取元素ID?

| 为了尝试这个概念,我正在做一个非常简单的测试。 我从一开始就出现了带有一些文本输入的表格。 当我点击一个领域,我想捕捉它的ID号,和值添加到输入文本。
$(document).ready(function() {
    $(\'input\').focus(function() {
        var currentId = $(this).attr(\'id\');
       $(\"#\"+currentId).val(\'blah\');
    });
});
这对于初始字段非常有用,但是会停止使用ajax调用添加的字段。 诀窍是,用户可以点击任何一个领域,我不\'知道它,直到他们点击。 我的ID如下所示:
experience0-CompanyName //(original one)
experience[n]-CompanyName
([n]部分还用于按表格对字段进行排序,因为元素是根据经验,教育技能等分组的。 我该如何实现?     
已邀请:
一个简单的变化:
$(document).ready(function() {
    $(\'input\').live(\"focus\", function() {
        var currentId = $(this).attr(\'id\');
       $(\"#\"+currentId).val(\'blah\');
    });
});
“ 3”仅绑定到被调用时存在的元素。
.live()
函数绑定到一个事件的所有现有的元件,并且任何被稍后添加到DOM。     
先前的答案不再合适。他们依赖现在不推荐使用的jQuery.live。在jQuery 1.11中,对jQuery.live的调用会产生错误。当前的首选解决方案是使用jQuery.on。上面的jQuery.live代码的实现如下。当前设置为\“:input \”的第二个参数可以由符合您需要的选择器代替。
$( \"body\" ).on(\'focus\', \":input\", function() {
    var currentId = $(this).attr(\'id\');
    $(\"#\"+currentId).val(\'blah\');
});
    
它可以更简单(无需获取ID并通过它进行搜索):
$(document).ready(function() {
    $(\'input\').live(\'focus\', function() {
        $(this).val(\'blah\');
    });
});
    
我相信你正在使用
$(\"<someid>\").focus(<function>)
。这适用于已加载的文档,而不适用于添加的新标签。
Try using $(\"<someid>\").live(\"focus\", <function>);
还做看看jQuery的网站。他们获得了带有示例的相当不错的文档。要进行实时检查,请访问http://api.jquery.com/live/     

要回复问题请先登录注册