jquery wrap(动态元素)

时间:2011-10-31 17:40:00

标签: jquery

所以我整个上午一直在研究这个 - 我很确定代码是正确的但是要解释我试图在动态生成的输入中包含一个表,所以需要那里的tr / td。我已经审查了html / wrap / append等函数无济于事......: - (

在那里查看完整脚本的评论,但实际上这是它的核心。任何帮助将不胜感激。

我尝试了包装和文档写入,但它不喜欢它。我错过了什么???

$(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 个答案:

答案 0 :(得分:0)

document.write()中使用$(document).ready()将清除现有文档并开始新文档。我更怀疑这是你想要的(特别是因为你似乎试图将行添加到现有表中)。

您需要使用jQuery函数将新元素插入DOM而不是document.write()。有许多用于操作DOM的jQuery调用。你可以看到其中一些here。我猜你想要append()after()等电话。