我有一个 div,里面有两个选择框。在第一次选择中选择一个项目后,AJAX 会在第二个选择框中填写相应的项目。一旦在第二个选择框中选择了一个项目,我希望在第一个之后创建一个新的 div,并根据第一个 div 中的值创建一些新的选择框。
如果我尝试添加实际的 HTML 元素(div、h2 等),.after、.insertAfter、.append 似乎不起作用。如果我只是将纯文本添加到.after,它就可以了。
因此,如果我添加$('#form_pt1').after("<div id='test'>Form Part 2</div>")
它不会触发,但如果我只添加文本“Form Part 2”,它将在第一个 div 之后添加它,但仅作为文本添加,而不是作为元素添加。
我在这里错过了什么吗?它与DOM有关吗?我已经在 IE、Firefox 和 Chrome 中检查过这种行为。添加 div 时它不会触发。
<script type="text/javascript">
$(document).ready(function(){
$("select#signup_cust_type_select").change(function(){
alert($("#signup_cust_type_select").attr("value"));
var id = $("select#signup_cust_type_select option:selected").attr('value');
var zip = $("input#hiddenzip").attr('value');
$.post("http://someip/wp-content/plugins/exec-php/includes/select_type.php", {zip:zip}, function(data){
$("select#signup_utility_select").html(data);
});
});
$("select#signup_utility_select").change(function(){
});
});
</script>
<script type="text/javascript">
$(document).ready(function(){
$("input#submitbtn").click(function(){
$('#form_pt1').after("<p></p><div id='test'>Form Part 2</div>");
});
});
</script>`
HTML基本上是:
<div id="form_pt1">
<form id="the_form">
<select box 1>
<select box 2>
</form>
</div>
<div id="new_div_should_go_here"></div>
只有当我像这样编辑代码时它才有效:
$(document).ready(function(){
$("input#submitbtn").click(function(){
$('#form_pt1').after("Form Part 2");
});
});
通过删除 HTML 元素,它添加了“Form Part 2”字样。