如何使用JQuery将两个div加载到单独的目标中?
我正在努力实现两件事,但我都没有做到。 服务器上有一系列注释;它们都包含一个div(id=ajxContent)。一些注释还包含additiona div(id=ajxHead)。ajxContent本身包含调用下一期的链接(class=clicking),因此是变量中的链接目标 这是我的代码:如何使用JQuery将两个div加载到单独的目标中?,jquery,Jquery,我正在努力实现两件事,但我都没有做到。 服务器上有一系列注释;它们都包含一个div(id=ajxContent)。一些注释还包含additiona div(id=ajxHead)。ajxContent本身包含调用下一期的链接(class=clicking),因此是变量中的链接目标 这是我的代码: $(document).ready(function(){ $( 'a.clicking' ).live('click', function(e){ e.preventDefault();
$(document).ready(function(){
$( 'a.clicking' ).live('click', function(e){
e.preventDefault();
var theLink = $(this).attr('href');
$('#loadText').load(theLink + '#ajxContent');
$('h1').load(theLink + '#ajxHead');
});
})
如果失败:
1) ajxContent被加载到h1标记及其预期目标中。
2) 当我以不同的方式设置代码时,如果注释中不存在div id=ajxHead,那么加载将删除h1标记中的现有值
有两个load语句,我是不是走错了路?非常欢迎输入,谢谢。您需要一个空间来获取部分内容: 已更新-修复您的特定页面:
$( 'a.clicking' ).live('click', function(e){
e.preventDefault();
$.get($(this).attr('href'), function(resp) {
$('#loadText').html($(resp).filter('#ajxContent').html());
var head = $(resp).filter('#ajxHead');
if(head.length) $('h1').html(head.html());
});
});
因为您的元素都是根元素,我没有遇到过,$(选择器,上下文)
不起作用,因为它在内部执行此操作:context.find(选择器)
在您的情况下,它们不是根响应元素的子元素,它们都是根元素的同级,请执行alert($(resp).length)
查看此信息
无论如何,上面的代码将完成您所需的工作,在Chrome和Firefox中进行测试,看起来不错,并且只请求页面一次。非常感谢Nick。您的第一期解决了我的第一个问题,但当便笺没有ajxHead div时,h1仍然会被替换。遗憾的是,您的第二个选项返回全白屏幕?@Bussard-更新,请重试第二个选项。@Nick,不,现在ajxContent没有加载。@Nick-两个选项都不起作用,但之前屏幕全白;调用删除了#loadText和h1中的值。现在,最初的h1仍然可见,但内容消失,并且没有被ajxContent替换。@Bussard-尝试以下操作:
$.get($(this.attr('href'),function(data,status){alert(status);})代码>你得到了什么?
$( 'a.clicking' ).live('click', function(e){
e.preventDefault();
$.get($(this).attr('href'), function(resp) {
$('#loadText').html($(resp).filter('#ajxContent').html());
var head = $(resp).filter('#ajxHead');
if(head.length) $('h1').html(head.html());
});
});