#jquery
#jquery ( jquery )
Вопрос:
итак, я изучал это все утро — и я почти уверен, что код правильный, но для объяснения я пытаюсь включить таблицу в динамически генерируемые входные данные, поэтому там нужен tr / td. Я просмотрел html / wrap / append и т.д. функции безрезультатны … 🙁
Смотрите комментарий там для получения полного сценария, но на самом деле это его суть. Любая помощь была бы очень признательна.
Я попробовал wrap и document writes, но ему это не нравится. что я упускаю из виду???
$(document).ready(function() {
$('#btnAdd').click(function() {
var num = $('.clonedInput').length; // how many "duplicatable" input fields we currently have
var newNum = new Number(num 1); // the numeric ID of the new input field being added
//http://charlie.griefer.com/blog/2009/09/17/jquery-dynamically-adding- form-elements/
// create the new element via clone(), and manipulate it's ID using newNum value
var newElem = $('#input' num).clone().attr('id', 'input' newNum).wrap('<td />');
// manipulate the name/id values of the input inside the new element
newElem.children(':first').attr('id', 'name' newNum).attr('name', 'name' newNum).val('');
newElem.children(':second').attr('id', 'amt' newNum).attr('name', 'amt' newNum).val('');
newElem.children(':third').attr('id', 'value' newNum).attr('name', 'value' newNum).val('');
newElem.children(':fourth').attr('id', 'test' newNum).attr('name', 'test' newNum).val('');
// insert the new element after the last "duplicatable" input field
document.write("<tr>");
$('#input' num).after(newElem);
document.write("</tr>");
Комментарии:
1. Можете ли вы уточнить, в чем заключается ваш вопрос?
2.Взгляните на API jQuery
prepend()
append()
— я думаю, это намного удобнее, чемdocument.write()
.
Ответ №1:
Использование document.write()
in $(document).ready()
приведет к удалению существующего документа и запуску нового документа. Я скорее сомневаюсь, что это то, что вы намереваетесь (тем более, что вы, похоже, пытаетесь добавить строки в существующую таблицу).
Вам нужно использовать функции jQuery для вставки новых элементов в DOM вместо document.write()
. Существует множество вызовов jQuery для управления DOM. Вы можете увидеть некоторые из них здесь. Я бы предположил, что вам нужны вызовы типа append()
или after()
.