jQuery克隆的表行不能从DOM中检索?
我正在编写一些jquery来创建动态表单表。
它需要做的就是克隆一行,然后更改该行的一些属性以使其唯一。
因此,我的策略是首先克隆它,将其附加到表中,然后获取其中一个子元素并对其进行修改。 一切正常,但最后一部分。
$(function () { $(".appendRow").click(function() { var body = $(this).closest("tbody"); var row = $(this).closest("tr"); var newNum = $(".operation").size(); $("#test").append("newNum: " + newNum + "
"); var clone = row.clone(); body.append(clone); var newRow = $(".RowNumber").get(newNum); var newRowNum = newNum + 1; $("#test").append("newRowNum: " + newRowNum + "
"); // $("#test").append("type: " + newRow.type() + "
"); // tried to check type with this, error //newRow.html(newRowNum); // trying to change html of span element, fails with error }); });
第一个注释行旨在帮助我调试。 它和其他其他评论行在Google Chrome中导致错误:
本地exception,类型错误,newRow未定义。
下面是html:
2013年5月29日的注意事项:我最近发现,我的Adblock Plus为Google Chrome添加了以防止类“addRow”被显示(它使用display:none
用于与广告相关的一堆类)。 我已经编辑了问题和答案,将类更改为“appendRow”,这样任何复制此代码的人都不会遇到我刚才遇到的同样问题。
为什么要追加一个元素,然后在追加它之前修改它时从DOM中获取该元素进行修改?
我不知道你要做什么,但也许是这样的:
$(function() { $('#processname').on('click', '.addRow', function() { var body = $(this).closest("tbody"); var row = $(this).closest("tr"); var newNum = $(".operation").length + 1; var clone = row.clone(); clone.find('.rowNumber').html(newNum); body.append(clone); }); });
小提琴