Javascript 如何使用ajax在一次单击中加载动态创建的div中的内容

Javascript 如何使用ajax在一次单击中加载动态创建的div中的内容,javascript,jquery,Javascript,Jquery,这是我当前的代码: var container, url; $(".nav-list li a").on("click", function(e) { e.preventDefault(); var $url = this.href + " #content"; var container = $("#content"); $(".nav li").removeClass("active"); $(this).parent().addClass("activ

这是我当前的代码:

var container, url;

$(".nav-list li a").on("click", function(e) {

   e.preventDefault();

   var $url = this.href + " #content";
   var container = $("#content");

   $(".nav li").removeClass("active");
   $(this).parent().addClass("active");

   $(this).addClass("clicked");

   var $row = $(".span10");
   var $rowNew = $('.new');

   if ($rowNew.children().length > 1) {
        $(".span10 div").removeClass("new");
        $('<div class="row-fluid new"></div>').prependTo($row);
   }

   if ($(".new").length == 0) {
        $('<div class="row-fluid new"></div>').prependTo($row);
        $('<div class="span6">' + container.load(url) + '</div>').appendTo('.new');
   } else {
        $('<div class="span6">' + container.load(url) + '</div>').appendTo('.new');
   }

});
var容器,url;
$(“.nav list li a”)。在(“单击”上,函数(e){
e、 预防默认值();
var$url=this.href+“#content”;
var容器=$(“#内容”);
$(“.nav li”).removeClass(“活动”);
$(this.parent().addClass(“活动”);
$(此).addClass(“单击”);
变量$row=$(“.span10”);
var$rowNew=$('.new');
如果($rowNew.children().length>1){
$(.span10 div”).removeClass(“新”);
$('').prependTo($row);
}
如果($(“.new”).length==0){
$('').prependTo($row);
$(''+container.load(url)+''.appendTo('.new');
}否则{
$(''+container.load(url)+''.appendTo('.new');
}
});
我试图在
中加载内容,但我对如何设置.load和加载其中的内容感到困惑

当前html输出:

<div class="row-fluid new">
   <div class="span6">
       container.load(url)
   </div>
</div>

container.load(url)

我认为你不应该这样使用
load
;它只意味着将结果放入您事先知道的现有元素中。最好在成功回调时使用
get

    e.preventDefault();

    var url = $(this).attr('href') + ".content";

    [...]

    $.get(url, '', function(result) {
      if ($(".new").length == 0) {
        $('<div class="row-fluid new"></div>').prependTo($row);
        $('<div class="span6">' + result+ '</div>').appendTo('.new');
      } else {
        $('<div class="span6">' + result + '</div>').appendTo('.new');
      }
    });
e.preventDefault();
var url=$(this.attr('href')+“.content”;
[...]
$.get(url),、函数(结果){
如果($(“.new”).length==0){
$('').prependTo($row);
$(''+result+'').appendTo('.new');
}否则{
$(''+result+'').appendTo('.new');
}
});

无需使用
var容器=$(“#内容”)
并在过程中删除其id。

我猜行
var url=this.href+“.content”
不会像jquery上下文中的
this.href
那样工作,应该是
$(this.attr('href')
为什么有
var容器,url然后再次
var url=this.href+“.content”;var容器=$(“#内容”)
您是否尝试过先加载,然后使用container.html()?@roXon var container,url;是个打字错误,thanks@jtheman更改$(这个)并用当前输出更新问题没有加载,甚至没有添加新分区这是我做的,我什么也没有得到,甚至没有新分区啊,我看到
url
是未定义的。如果要使用当前单击的链接的href,请使用
var url=$(this.attr('href')
而不是当前的
var$url=…
(只是
var url=this.href
通常也可以工作)是的,我将其更改为var url=this.href+“.content”;但它不加载内容,它所做的是替换整个内容。我没有看到新的Div createdah,phew,谢谢,奇怪的是,就在几个小时前,我在$1上遇到了类似的问题;)