我需要使用jQuery将div替换为另一个div

时间:2013-05-08 13:05:02

标签: jquery html

<div id="main">
    <div id="abc">
        <div>
            This is the div to be replaced
        </div>
    </div>
    <div id="xyz" style="display:none">
        <div>
            This is the div replaced
        </div>
    </div>
</div>

我已经像这样给了它

$('#main').children('div:eq(0)').css('display','none')
$('#main').children('div:eq(0)').replaceWith($('#xyz').html())

但是,如果我看到输出,我只能将其作为<div>This is the div replaced</div>,而不是<div id="xyz">

的父div。

6 个答案:

答案 0 :(得分:2)

我认为你实际上在寻找切换功能。

请检查 fiddle

$('#main').click(function(){
    $('#main>div').toggle();
});

答案 1 :(得分:1)

http://api.jquery.com/html/

基本上,您获得了innerHTML $(&#39;#xyz&#39;),而不是整个代码本身。

只做

$('#main').children('div:eq(0)').replaceWith($('#xyz'))

答案 2 :(得分:1)

var isDisplayed = $("#main").find("#abc").css("display");
if(isDisplayed == "block"){
  $("#main").find("#abc").css("display","none");
  $("#main").find("#xyz").css("display","block");
}
else{
  $("#main").find("#abc").css("display","block");
  $("#main").find("#xyz").css("display","none");
}

答案 3 :(得分:1)

也许你正在寻找这个:

$('#main').children('div:eq(0)').replaceWith(xyz);

答案 4 :(得分:0)

试试这个

$('#main').find('div:eq(0)').css('display','none');
$('#main').children('div:eq(0)').replaceWith($('#xyz'));

通过指定$('#xyz').html(),您只能获得div的内容。

有关replaceWith的更多信息,请参阅jQuery docs

答案 5 :(得分:0)

我认为这应该做你想要的:

$('#main div:first').html($('#xyz').html())