Javascript jQuery-可能需要一些内容加载器方面的帮助

Javascript jQuery-可能需要一些内容加载器方面的帮助,javascript,jquery,html,css,Javascript,Jquery,Html,Css,谈到JavaScript,尤其是语法,我不是很优秀。所以我在努力学习。在这个过程中,我试图实现一个内容加载器,它基本上从一个div中删除所有内容,并从另一个div中插入另一个文档中的内容 我在这个网站上尝试过这样做: www.matkalenderen.no-检查那里的链接。看看会发生什么 我在这个网站上举了一个例子: 但我不确定这个例子是否真的像我想的那样有效。我的意思是,如果代码只是删除了一个div中的现有内容,并插入了另一个div中的内容,那么为什么本例中的其他网页包括doctype和h

谈到JavaScript,尤其是语法,我不是很优秀。所以我在努力学习。在这个过程中,我试图实现一个内容加载器,它基本上从一个div中删除所有内容,并从另一个div中插入另一个文档中的内容

我在这个网站上尝试过这样做: www.matkalenderen.no-检查那里的链接。看看会发生什么

我在这个网站上举了一个例子:

但我不确定这个例子是否真的像我想的那样有效。我的意思是,如果代码只是删除了一个div中的现有内容,并插入了另一个div中的内容,那么为什么本例中的其他网页包括doctype和heading等?难道你不需要那个div和它的内容吗?没有“周围”的其他东西?也许我不明白这是怎么回事。我觉得它真的很管用

但这是我的代码:

$(document).ready(function() {

    var hash = window.location.hash.substr(1);
    var href = $('#dynloader a').each(function(){
            var href = $(this).attr('href');
            if(hash==href.substr(0,href.length-5)){
                    var toLoad = hash+'.html #container';
                    $('#container').load(toLoad)
            }                                                                                        
    });

    $('#dynloader a').click(function(){

            var toLoad = $(this).attr('href')+' #container';
            $('#container').hide('fast',loadcontainer);
            $('#load').remove();
            $('#wrapper').append('<span id="load">LOADING...</span>');
            $('#load').fadeIn('normal');
            window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5);
            function loadcontainer() {
                    $('#container').load(toLoad,'',showNewcontainer())
            }
            function showNewcontainer() {
                    $('#container').show('normal',hideLoader());
            }
            function hideLoader() {
                    $('#load').fadeOut('normal');
            }
            return false;

    });

});
$(文档).ready(函数(){
var hash=window.location.hash.substr(1);
var href=$('#dynloader a')。每个(函数(){
var href=$(this.attr('href');
if(hash==href.substr(0,href.length-5)){
var toLoad=hash+'.html#container';
$(“#容器”)。装载(toLoad)
}                                                                                        
});
$('#dynloader a')。单击(函数(){
var toLoad=$(this.attr('href')+'#container';
$(“#container”).hide('fast',loadcontainer);
$(“#加载”).remove();
$(“#包装器”).append('LOADING…');
$('加载').fadeIn('正常');
window.location.hash=$(this.attr('href').substr(0,$(this.attr('href').length-5);
函数loadcontainer(){
$('#container').load(toLoad',showNewcontainer())
}
函数showNewcontainer(){
$(“#容器”).show('normal',hideLoader());
}
函数hideLoader(){
$('加载').fadeOut('正常');
}
返回false;
});
});
jQuery
.load()
中有一些额外的功能来支持这一点。

在您的示例中,这里有一个重要部分:
hash+'.html#container'
容器前面的空格意味着jQuery将获取该URL,使用
id=“container”
查找元素,并仅获取该元素的内容,而丢弃页面的其余部分。这使得
.load()
能够以一种更通用的方式工作,而无需专门为ajax加载而设计


在您的情况下,我认为您只需要从末尾删除
#内容
,除非您正在查找该元素。并不是说“查找内容”,这只是他们用来查找元素的ID。它可能是
#divToLoad
,在我看来这是一个更清晰的例子。

您是否查看了原始源代码或我稍微修改过的版本?我不确定我是否理解最后一部分“在您的情况下,我认为您只需要从末尾删除内容”,因为我的版本中没有内容。@Kenny-在您发布的代码中,这是在第6行:
var-toLoad=hash+'.html#container'
如果您没有在内容中查找该ID,那么它应该是:
var-toLoad=hash+'.html'
单击处理程序中的相同内容:
var-toLoad=$(this.attr('href')+'#container'
应该是
var-toLoad=$(this.attr('href')好的,我明白了。但是,更进一步。代码从文件中的div获取内容。那很好。但这需要大量包含内容的单个文件。即使每个文件中只有一点点内容。是否可以将所有内容放在一个文件中?只把它们放在不同的分区里?最好不用在js代码中指定ID?但不确定如何实现,可能是通过href?@Kenny-是的,您可以通过不同的方法(
$.get()
$.ajax()
)实现这一点,但您需要ID或类或一些独特的东西,以便找到所需的元素。为什么我需要不同的方法?只要读一下get方法,它看起来和load一样,不是吗?