我想在点击特定链接时,文件的内容将被加载到div中。这工作正常,但是当我点击另一个时,我希望另一个文件的内容加载到该div中的ul元素中,但它不起作用。
这就是我所做的:
$(document).on('click', 'a.link2', function() {
var value = $(this).attr("href");
value=value.replace("#","");
var linkName = {'href':value};
$.ajax({
type: "POST",
url: 'pp.php',
data :linkName,
success: function(response){
if(value=="login")
$('#div1').html(response);
}
});
});
$(document).on('click', 'a.link', function() {
var value = $(this).attr("href");
value=value.replace("#","");
var linkName = {'href':value};
// alert(value+"dd");
$.ajax({
type: "POST",
url: 'make.php',
data :linkName,
success: function(response){
$('#target').html(response);
}
});
}) ;
html代码:
<div id="div1">
<ul id="target">
.
.
.
</ul></div>
答案 0 :(得分:2)
这是因为您正在覆盖#div1
( $('#div1').html(response);
)的内容,因此您删除了ul
元素。因此,当进行下一个ajax调用时,无法找到ul
..
您可以将html更改为
<div id="div1">
<div id="ajaxresult"></div>
<ul id="target"></ul>
</div>
并使用$('#ajaxresult').html(response);
代替$('#div1').html(response);
答案 1 :(得分:1)
您的问题是第一个ajax调用用#div1
覆盖$('#div1').html(response)
内的html,因此在第二个ajax调用时#target
不再存在。
要解决此问题,您可以将html更改为:
<div id="div1"></div>
<ul id="target"></ul>