jQuery - не может изменить идентификатор клонированной формы в IE - PullRequest
2 голосов
/ 24 ноября 2010

Я хочу динамически добавлять строки в таблицу, чего я добиваюсь путем клонирования строки и изменения ее идентификатора:

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

Затем я хочу изменить идентификаторы других компонентовв строке, например:

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

Проблема возникает, когда я хочу изменить идентификатор формы, которая является первым дочерним элементом строки и содержит все остальные компоненты:

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

Все строки выше работают нормально в Firefox, но последняя строка не работает в IE8.Клон еще не вставлен (перед тем, как вставить его, мне нужно изменить все идентификаторы), он просто сохраняется в переменной «клонирован».Почему IE не позволяет мне менять идентификатор клонированной формы?Как я могу преодолеть это?Я использую jquery 1.3.2.

1 Ответ

1 голос
/ 24 ноября 2010

Ваше описание предполагает, что ваш HTML не на 100% действителен, что-то вроде <tr><form>...</form></tr> или <tr><td><form></td>...<td></form></td></tr>. JavaScript должен работать в действительном дереве DOM, поэтому, когда браузер находит недопустимый HTML, он пытается изменить структуру, чтобы сделать ее действительной. Это означает, что фактический документ, над которым работает jQuery, может отличаться от того, который вы имеете в виду; может даже отличаться в разных браузерах.

Можете ли вы подтвердить, что ваш HTML проверяется на http://validator.w3.org/ или любой другой подобной услуге?

...