перенос jquery (динамические элементы)

#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() .