Javascript Div在生成时自动关闭

Javascript Div在生成时自动关闭,javascript,jquery,html,dom,append,Javascript,Jquery,Html,Dom,Append,我的div生成有一个问题,因为我生成了一个表单,我想将它们包装在一个具有相同id的div中。但是当我检查元素时,它会在表单之前自动关闭。因此,它并没有像令人惊讶的那样围绕它,它只是在表单上方 var startDiv = "<div id='appm'>"; var endDiv = "</div>"; for(var i = 0; i < values.length; i = i + 8){ $('#youEvents').append(

我的div生成有一个问题,因为我生成了一个表单,我想将它们包装在一个具有相同id的div中。但是当我检查元素时,它会在表单之前自动关闭。因此,它并没有像令人惊讶的那样围绕它,它只是
在表单上方

var startDiv = "<div id='appm'>";
var endDiv = "</div>";

for(var i = 0; i < values.length; i = i + 8){   

    $('#youEvents').append(     

        $('<form />', { id: values[i], method: 'POST' }).append(
            startDiv, // Starting div id=appm
            $('<textarea />', { id: "teast", name: 'routename', placeholder: 'Name', value: values[i], type: 'text' }),
            $('<br />'),
            $('<input />', { id: 'rname', name: 'routename', placeholder: 'Name', value: values[i + 1], type: 'text' }),
            $('<br />'),
            $('<input />', { id: 'rname', name: 'routename', placeholder: 'Name', value: values[i + 2], type: 'text' }),
            $('<br />'),
            $('<input />', { id: 'rname', name: "ee", placeholder: 'Name', value: values[i + 3], type: 'text' }),
            $('<br />'),
            $('<input />', { id: 'rname', name: 'routename', placeholder1: 'Name', value: values[i + 4], type: 'text' }),
            $('<br />'),
            $('<input />', { id: 'rname', name: 'routename', placeholder: 'Name', value: values[i + 5], type: 'text' }),
            $('<br />'),
            $('<input />', { id: 'address', id: 'rdescription', name: 'heya', value: values[i + 6], type: 'text' }),
            $('<br />'),
            $('<input />', { id: 'adress', name: 'routetags', placeholder: 'tags', value: values[i + 7], type: 'text' }),
            $('<br />'),                                    
            $('<input />', { id: values[i], type: 'button', value: 'Submit',  click: function(){
                // attaching the function to the button
                testAjax(this.id);  // Calling the function below.                                                  
            }}),
            endDiv // Ending the div         
        )
    );
}
var startDiv=”“;
var endDiv=“”;
对于(var i=0;i”),
$(“”,{id:'rname',name:'routename',占位符:'name',值:值[i+1],键入:'text'}),
$(“
”), $(“”,{id:'rname',name:'routename',占位符:'name',值:值[i+2],键入:'text'}), $(“
”), $(“”,{id:'rname',name:'ee',占位符:'name',value:values[i+3],键入:'text'}), $(“
”), $(“”,{id:'rname',name:'routename',placeholder 1:'name',value:values[i+4],type:'text'}), $(“
”), $(“”,{id:'rname',name:'routename',占位符:'name',值:值[i+5],键入:'text'}), $(“
”), $(“”,{id:'address',id:'rdescription',name:'heya',value:values[i+6],type:'text'}), $(“
”), $(“”,{id:'address',name:'routetags',占位符:'tags',值:values[i+7],键入:'text'}), $(“
”), $(“”,{id:values[i],键入:'button',值:'Submit',单击:function(){ //将功能附加到按钮上 testAjax(this.id);//调用下面的函数。 }}), endDiv//结束div ) ); }
发生这种情况是因为
jQuery
在追加
时创建HTML元素
div
,其中包括结束标记。因此,例如,表示法
$(“”)
,结果与
$(“”)
相同

要实现您想要的,您可以使用另一个嵌套的
。append

$('<form>', { id: values[i], method: 'POST' }).append(
    $('<div>', { id: 'appm' }).append(
        $('<textarea>', { id: "teast", name: 'routename', placeholder: 'Name', value: values[i], type: 'text' }),
        $('<br>'),
        // [...] 
        $('<br>'),                                    
        $('<input>', { id: values[i], type: 'button', value: 'Submit',  click: function(){ testAjax(this.id); } })
    )
)
$(“”,{id:values[i],方法:'POST'})(
$('',{id:'appm'})。追加(
$('',{id:'teast',name:'routename',占位符:'name',值:values[i],键入:'text'}),
$(“
”), // [...] $(“
”), $(“”,{id:values[i],键入:'button',值:'Submit',单击:function(){testAjax(this.id);}) ) )
我会的,但它需要15次重复:(我把它标记为答案,这会给你分数吗?