Javascript 为什么要将元素附加到末尾
我正在尝试使用jquery/ajax制作表单 我现在做的是:Javascript 为什么要将元素附加到末尾,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在尝试使用jquery/ajax制作表单 我现在做的是: var form="<form id='frm'>name: <input type='text' id='name' name='name' /> <br />"; $("#productos").append(form); $.get("bb.php").done(function (data){ $("#frm").append(data); //
var form="<form id='frm'>name: <input type='text' id='name' name='name' /> <br />";
$("#productos").append(form);
$.get("bb.php").done(function (data){
$("#frm").append(data); // this return a select
});
$("#frm").append("<p id='a1'>aa</p>");
$("#productos").append("</form>");
我期待着:
<form id="frm">
name: <input id="nombre" type="text" name="name"></input>
<select> … </select>
<p id="a1"> … </p>
</form>
但我得到的是:
<form id="frm">
name: <input id="nombre" type="text" name="name"></input>
<p id="a1"> … </p>
<select> … </select>
</form>
我知道我以前可以使用insertbefore,但我想知道为什么会发生这种情况,以及是否有其他方法可以修复,因为您在此处指定的回调-
$.get("bb.php").done(function (data){
$("#frm").append(data); // this return a select
});
从服务器获得响应后执行,而-
$("#frm").append("<p id='a1'>aa</p>");
或
因为您在此处指定的回调-
$.get("bb.php").done(function (data){
$("#frm").append(data); // this return a select
});
从服务器获得响应后执行,而-
$("#frm").append("<p id='a1'>aa</p>");
或
... .附加;-这不是在DOM中插入元素的方式。此外,ajax请求是异步的,因此只有当请求成功完成时,才会添加元素。@谢谢。我意识到这不是正确的方法。附加;-这不是在DOM中插入元素的方式。此外,ajax请求是异步的,因此只有当请求成功完成时,才会添加元素。@谢谢。我意识到这不是正确的方法,谢谢。哪一种是最常用或更好的使用方法?@Don:这取决于你想要达到的目标。如果您希望您的段落在响应到来之前在DOM中可用,请使用第二个段落。否则使用第一个。两个都有效,谢谢。哪一种是最常用或更好的使用方法?@Don:这取决于你想要达到的目标。如果您希望您的段落在响应到来之前在DOM中可用,请使用第二个段落。否则使用第一个。