Проблема с clone() dom элемента.
Здравствуйте, пытаюсь сделать создание копии элемента и добавление класса элементу с инкрементным id. То есть при нажатии на ссылку (Например Добавить поле), должны создаваться новые поля file . Делаю так, но работает это не корректно :-?
$("#add-file-field").click (function() { var i=0; $(".file_inp").each(function() { $(".file_inp").clone().appendTo('body').addClass(i++); }); }); Уже и без использования цикла, и с $this, всё безуспешно. Что не так, подскажите пожалуйста. Спасибо |
<script src="http://code.jquery.com/jquery-1.5.min.js"></script> <script> $(function(){ var i=0; $('a').click(function() { $(this).clone(true).appendTo('body').text($(this).text()+i+++' : '); return false; }); }); </script> <a href="#">click</a> |
monolithed, спасибо большое, вы меня немного опередили , впринципи мы с вами всё одинаково почти сделали, но только нужно добавить этот айдишник в класс .file_Inp , допустим, там уже буду добавлять по дому куда нужно будет(например в ....name = userfile[id].....) в этом tr.file_Inp ..
var i=0; $("#cloneButton").click(function () { $('.file_Inp:first').clone(true).insertAfter(this).appendTo('#Add_Object_Table'); }); У вас получалось вы клонировали текущий элемент #cloneButton, у меня же , как видите, клонируется весь участок элементов tr.file_Inp , вместе с баттоном #cloneButton. ((( Как сюда впилить это id? |
Цитата:
$(this).clone() С инкрементом не совсем понял. В пределах одного добавления классы уникальные? |
Цитата:
Цитата:
<tr class="file_Inp"> <td> <input type="file" name="userfile[id]"> <a href="#" id="cloneButton">Добавить</a> </td> </tr> Сейчас у меня tr-ки создаются, по схеме $("#cloneButton").click(function () { $('.file_Inp:first').clone(true).insertAfter(this).appendTo('#Add_Object_Table'); При этом необходимо инкрементировать id в input name. Выше я показал в части html кода. Т.е userfile[1] , userfile[2], userfile[3]. А там уже в php буду обрабатывать массив файлов.. |
id++; var $new = $('.file_Inp:first').clone(true).insertAfter(this).appendTo('#Add_Object_Table'); $new.find('input').attr('name', 'userfile[' + id + ']'); id - сделай глобальной и установи вначале значение - по тем что имеются. |
Цитата:
var id=0; $('.file_Inp').each( function() { $("#cloneButton").click(function () { id++; alert(id); var c = $('.file_Inp:first').clone(true).insertAfter(this).appendTo('#Add_Object_Table'); c.find('input').attr('name', 'userfile[' + id + ']'); }); }); |
Часовой пояс GMT +3, время: 05:58. |