如何解决如何使用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/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。