Javascript 通过jQuery向表单添加多个项

Javascript 通过jQuery向表单添加多个项,javascript,jquery,html,Javascript,Jquery,Html,目标: 在本例中,动态地将表单元素添加到表单中的多个复选框中 问题: 我的代码只生成一个复选框 假设: 范围问题。 一旦创建了一个html元素,然后使用jQuery将其附加到DOM或vDOM中的另一个元素上,它就不能再次被重用,我需要构建另一个元素。 代码: JSFIDDLE: 在循环内创建复选框: $pform = $('<form/>'); // Create a form element. $('body').append($pform); // Add form elemen

目标:

在本例中,动态地将表单元素添加到表单中的多个复选框中

问题:

我的代码只生成一个复选框

假设:

范围问题。 一旦创建了一个html元素,然后使用jQuery将其附加到DOM或vDOM中的另一个元素上,它就不能再次被重用,我需要构建另一个元素。 代码:

JSFIDDLE:


在循环内创建复选框:

$pform = $('<form/>'); // Create a form element.
$('body').append($pform); // Add form element within the body element.

for (var x = 0; x<5; x++){
    $pform_checkbox = $('<input/>').attr('type','checkbox')
    $pform.append($pform_checkbox);
}

这是因为 $pform_checkbox=$.attr'type','checkbox'

$pform_checkbox将成为对实际复选框的引用,因此无需在每次迭代时重新声明它,只需尝试将相同的复选框附加到表单中即可

当你写$时,你就是。它只创建一个输入

要创建该输入的副本,可以使用。如果不先克隆它,只需重新附加将其移动到新位置的相同元素

从文件中:

您还可以在页面上选择一个元素并将其插入到另一个元素中:

$( ".container" ).append( $( "h2" ) );
如果以这种方式选择的图元插入到单个位置 在DOM的其他位置,它将被移动到未克隆的目标中:

以下代码演示了.append只是更改元素在DOM树中的位置:

$div2.追加$text; 你好,世界
Div2:好吧,你只创建了一个复选框,所以没有什么奇怪的?不过你的第二个假设是正确的,一旦你创建了一个元素,多次添加它只会移动同一个元素,它不会神奇地产生新元素。而且你已经知道了解决方案,创建元素或克隆循环中的元素;我的印象是,$pform_checkbox将始终对输入元素求值,因此我的循环会将该复选框的一个实例“附加”到现有表单中。当您取消对循环中第二行的注释时,您的小提琴就会起作用
$( ".container" ).append( $( "h2" ) );