jQuery - 无法在IE中更改克隆表单的ID

时间:2010-11-24 16:12:33

标签: jquery forms clone

我想动态地向表中添加行,这是通过克隆行并更改其ID来实现的:

var cloned = $('#tempRow').clone().attr("id","tr" + trLastId);

然后我想更改行中其他组件的ID,例如:

cloned.find('input[id^="upload"]').attr("id","upload" + trLastId);

当我想要更改表单的id时出现问题,该表单是行的第一个子节点并包含所有其他组件:

cloned.find("form").attr('id', "dynamicForm"+trLastId);

以上所有行在Firefox中运行良好,但最后一行在IE8中不起作用。克隆尚未插入(在插入之前我需要更改所有ID),只是保存到'克隆'变量中。为什么IE不允许我更改克隆表单的ID?我怎么能克服它?我正在使用jquery 1.3.2。

1 个答案:

答案 0 :(得分:1)

您的说明表明您的HTML不是100%有效,例如<tr><form>...</form></tr><tr><td><form></td>...<td></form></td></tr>。 JavaScript需要在有效的DOM树中工作,因此当浏览器找到无效的HTML时,它会尝试更改结构以使其有效。这意味着jQuery正在处理的实际文档可能与您想到的文档不同;它甚至可能因浏览器而异。

您可以确认您的HTML是否在http://validator.w3.org/或任何其他类似服务验证?