动态改变身体内容

时间:2012-05-11 17:22:30

标签: javascript html5 css3 document-body

如何在点击链接时动态更改html页面的正文内容?

所以我有3个html页面,如下所示:

<li><a id="homeContainer" href="#">Home</a></li>
<li><a id="testContainer" href='#'>test</a></li>
<li><a id="pageContainer" href="#">page</a></li>

我的div:

<div id='container'>
  </div> 

javascript:

$( document ).ready( function() {
        $( '#testContainer' ).click( function() {
            $( '#container' ).load('test.html');
        });

如果我为所有页面创建一个单独的函数,这可以正常工作。但是如何让javascript函数在load()函数中取一个页面而不是硬编码呢?

[编辑]

我在这里删除了所有内容,html,javascript和css: jsfiddle

2 个答案:

答案 0 :(得分:2)

我建议使用jquery用其他东西来改变你的身体。包含jquery代码:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>

然后做这样的事情。

<a id='linkThatChangesTheWorld' href=''>Click Me</a>

<script>
$('#linkThatChangesTheWorld').click( function() {
    $('body').html('I want my body this way.');
});
</script>

如果您只想在主体中添加一些html,或者如果您想要更改某个特定的div,则可以使用.prepend().append()之类的函数: p>

如果你有:

<div class='mychange'></div> 

然后使用:

$('.mychange').append('<h2>Check it out</h2>');

此外,如果您想从其他页面加载,可以使用.get()

$.get('myhtmlpage.html', function(data) {
    //do something after getting the result
    $('body').html($(data));
});

答案 1 :(得分:1)

尝试:

HTML

<li><a id="homeContainer" href="home.html">Home</a></li>
<li><a id="testContainer" href='test.html'>test</a></li>
<li><a id="pageContainer" href="page.html">page</a></li>

的Javascript

$(document).ready(function()
{
    $( 'li>a[id$="Container"]' ).click(function(event) 
    {
        event.preventDefault();
        var href = $(this).attr('href');
        alert("Loading " + href)
        $('#container').load(href);
        return false;
    });
});

修改

使用JQuery

尝试这个JSFiddle