使用jquery将文件内容加载到div中

时间:2013-02-01 14:57:13

标签: html jquery

我想在点击特定链接时,文件的内容将被加载到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>

2 个答案:

答案 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>