使用JQuery替换html页面文本

时间:2011-06-12 18:38:05

标签: javascript jquery html

我有一个简单的javascript代码,用其他文件的内容替换页面内容....(test2.html)

代码:

$(document).ready(function(){
    $("[href='#']").click(function() {
        function getcontent(url, id) {
            $("#id").load("url");
        }
    });
});

现在正在使用

<div id = "content">                 
<p> REPLACE </p>
</div>
<a href="#" onClick="getcontent('test2.html', 'content')">click here</a> 

现在,点击click here REPLACE应该被test2.html的内容替换......但它没有发生...... 我在我的脚本中包含了所需的jquery.js文件..

4 个答案:

答案 0 :(得分:1)

不,这不起作用。 getcontent是在特定范围内定义的函数 - 单击处理程序回调函数的函数。它不能在全局范围内访问 - onClick方法接收的范围。

您应该使用真正的点击处理程序,可能使用数据属性设置数据:

$('[href="#"]').click(function() {
    $('#' + $(this).data('id')).load($(this).data('url'));
});

使用以下HTML:

<a href="#" data-url="test2.html" data-id="content">click here</a>

答案 1 :(得分:1)

你有一个奇怪的设置。函数getcontent未在全局范围内定义,HTML中的onclick事件处理程序无法找到它。还有其他问题。

我建议像:

<a href="#content" rel="test2.html">click here</a> 

$(function(){
    $("a[href^='#']").click(function(){
        $(this.href).load(this.rel);
    });
});

答案 2 :(得分:0)

$('#' + id).load(url);

在上面的当前方法中,您传递的是字符串文字,而不是变量本身。

答案 3 :(得分:0)

您似乎误解了代码的某些部分正在做什么。此外,我建议给你的href一个真正的id,让事情变得更容易。您不需要使用jQuery“click”方法,也可以在HTML中内联指定onclick处理程序。

请改为尝试:

<div id = "content">                 
   <p> REPLACE </p>
</div>
<a id="clickThis" href="#">click here</a>

$(document).ready(function() {
    $('#clickThis').click(function() {
       $('#content').load('test2.html');
    });
});

您的代码有一些评论:

$(document).ready(function(){
    // this will assign a click handler, you don't need an 'onclick'
    // attribute on the anchor tag also
    $("[href='#']").click(function() {
        // but what does your click handler do?
        // It defines a function that is never called.
        function getcontent(url, id) {
            $("#id").load("url");
        }
    });
});