1
<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<div id="xyz">

4

6 回答 6

2

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

请检查这个小提琴

$('#main').click(function(){
    $('#main>div').toggle();
});
于 2013-05-08T13:12:46.700 回答
1

maybe you're looking for this:

$('#main').children('div:eq(0)').replaceWith(xyz);
于 2013-05-08T13:19:05.130 回答
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");
}
于 2013-05-08T13:14:20.260 回答
1

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

本质上,您得到的innerHTML是 $('#xyz'),而不是整个标签本身。

做就是了

$('#main').children('div:eq(0)').replaceWith($('#xyz'))
于 2013-05-08T13:11:35.063 回答
0

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

$('#main div:first').html($('#xyz').html())
于 2013-05-08T13:14:06.207 回答
0

试试这个

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

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

有关更多信息,replaceWith请参阅jQuery 文档

于 2013-05-08T13:10:57.767 回答