Jquery 使用.html()替换a<;中的文本;部门>;

Jquery 使用.html()替换a<;中的文本;部门>;,jquery,html,replacewith,Jquery,Html,Replacewith,我一直在寻找这个问题的答案,但似乎没有什么相关的。抱歉,如果还有其他类似的问题 我试图将多个页面放在一个index.html页面上,因此我试图让单击菜单按钮替换我的content div中的文本 我已尝试使用.replaceWith()。empty()和append()(and.appendTo()),并发现以下方法可以工作,但只能工作一次。我对编码非常陌生,因此如果您能以外行的方式回复我,我将不胜感激。:) 我的HTML: 家 建筑服务 维修及杂工服务 园林服务 画廊 联系我 这就是主

我一直在寻找这个问题的答案,但似乎没有什么相关的。抱歉,如果还有其他类似的问题

我试图将多个页面放在一个index.html页面上,因此我试图让单击菜单按钮替换我的content div中的文本

我已尝试使用.replaceWith()。empty()和append()(and.appendTo()),并发现以下方法可以工作,但只能工作一次。我对编码非常陌生,因此如果您能以外行的方式回复我,我将不胜感激。:)

我的HTML:


    家 建筑服务 维修及杂工服务 园林服务 画廊 联系我
这就是主页文本的位置

这就是建筑服务文本的方向

这就是维护服务文本的用途

以及jQuery:


$(“#buildServ”)。单击(函数(){
$(“#content”).html($(“#textDiv2”);
$(“#textDiv2”).show();
});
$(“#maintServ”)。单击(函数(){
$(“#content”).html($(“#textDiv3”);
$(“#textDiv3”).show();
});
一旦我点击了#buildServ,它就会工作,但我点击#maintServ并尝试返回到#buildServ,它就会清除#内容


希望这是清楚的,如果需要任何其他信息来帮助,请让我知道。

问题是您只分配实例,而不是div的html

尝试更改此选项:

       $("#buildServ").click(function(){
            $("#content").html($("#textDiv2"));
            $("#textDiv2").show();
            });
        $("#maintServ").click(function(){
            $("#content").html($("#textDiv3"));
            $("#textDiv3").show();
            });
为此:

   $("#buildServ").click(function(){
        $("#content").html($("#textDiv2").html());
        $("#textDiv2").show();
        });
    $("#maintServ").click(function(){
        $("#content").html($("#textDiv3").html());
        $("#textDiv3").show();
        });

问题是这种方法不正确,我建议您复制div#textDiv2和#textDiv3并分配另一个id,然后将其插入到您的div中,因为这样您可以有多个具有相同id的div

问题是您只分配div的实例,而不是该div的html

<html>
    <head>
        <script type="text/javascript" src="http://code.jquery.com/jquery-1.5.1.min.js"></script>
        <script type="text/javascript">
           $(document).ready(function(){
               $('#selectedTarget').load('includes/contentSnippet.html');
           });
        </script>   
    </head>
    <body>
        <div id="selectedTarget">
            Existing content.
        </div>
    </body>
</html>
尝试更改此选项:

       $("#buildServ").click(function(){
            $("#content").html($("#textDiv2"));
            $("#textDiv2").show();
            });
        $("#maintServ").click(function(){
            $("#content").html($("#textDiv3"));
            $("#textDiv3").show();
            });
为此:

   $("#buildServ").click(function(){
        $("#content").html($("#textDiv2").html());
        $("#textDiv2").show();
        });
    $("#maintServ").click(function(){
        $("#content").html($("#textDiv3").html());
        $("#textDiv3").show();
        });
问题是这种方法不正确,我建议您复制div#textDiv2和#textDiv3并分配另一个id,然后将其插入到您的div中,因为这样您可以有多个具有相同id的div


<html>
    <head>
        <script type="text/javascript" src="http://code.jquery.com/jquery-1.5.1.min.js"></script>
        <script type="text/javascript">
           $(document).ready(function(){
               $('#selectedTarget').load('includes/contentSnippet.html');
           });
        </script>   
    </head>
    <body>
        <div id="selectedTarget">
            Existing content.
        </div>
    </body>
</html>
$(文档).ready(函数(){ $('#selectedTarget').load('includes/contentSnippet.html'); }); 现有内容。


$(文档).ready(函数(){
$('#selectedTarget').load('includes/contentSnippet.html');
});
现有内容。

我想你可以直接显示/隐藏你的div

比如:


代码的问题是隐藏的div位于#content div中,而您正在替换该html。所以当你做
$(“#content”).html($(“#textDiv3”)内容中的所有其他div消失,您无法将它们返回到其他单击中。

我认为您可以显示/隐藏您的div

比如:


代码的问题是隐藏的div位于#content div中,而您正在替换该html。所以当你做
$(“#content”).html($(“#textDiv3”)内容中的所有其他div消失,您无法将它们返回到其他单击中。

无需为每个项目编写处理程序

$textDivs = $('#content > div')
$("#menubar ul > *").click(function(){
    $textDivs.hide();
    $textDivs.eq($(this).index()).show();
    return false;
});

演示:

不需要为每个项目编写处理程序

$textDivs = $('#content > div')
$("#menubar ul > *").click(function(){
    $textDivs.hide();
    $textDivs.eq($(this).index()).show();
    return false;
});


演示:

这行吗?如果替换#content的html,则将不会有#textDiv2、#textDiv3、,etc@Sergio是的,这只会起作用一次。在那之后,textDiv2,textDiv3将被替换,我有写,这不是产生这个逻辑的正确方法!我只有OP问题的答案,我认为没有必要否决投票,但是@Sergio@AlessandroMinoccheri,OP抱怨它只在第一次点击时工作,而不是第二次。你的答案在第一次点击后有效吗?谢谢你的回复,不过我现在已经完全改变了,我使用的是jquery ui标签系统。这有效吗?如果替换#content的html,则将不会有#textDiv2、#textDiv3、,etc@Sergio是的,这只会起作用一次。在那之后,textDiv2,textDiv3将被替换,我有写,这不是产生这个逻辑的正确方法!我只有OP问题的答案,我认为没有必要否决投票,但是@Sergio@AlessandroMinoccheri,OP抱怨它只在第一次点击时工作,而不是第二次。你的答案在第一次点击后有效吗?谢谢你的回答,但是我现在已经完全改变了这一点,并且使用了jquery ui标签系统。这是这里答案的最佳方法这是这里答案的最佳方法+1。OP应该记住菜单链接的顺序和数量必须与div相同。@Sergio yes。。。它基于Index谢谢,效果很好,但由于客户端的需要,我现在使用的是jquery ui选项卡系统。:)+我对这个很感兴趣。OP应该记住菜单链接的顺序和数量必须与div相同。@Sergio yes。。。它基于Index谢谢,效果很好,但由于客户端的需要,我现在使用的是jquery ui选项卡系统。:)