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

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

基本的にinnerHTML、タグ自体ではなく、$('#xyz') を取得しています。

やるだけ

$('#main').children('div:eq(0)').replaceWith($('#xyz'))
于 2013-05-08T13:11:35.063 に答える
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 に答える
0

代わりにこれを試してください

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

指定$('#xyz').html()することで、div の内容のみを取得します。

詳細については、 jQuery ドキュメントreplaceWithを参照してください

于 2013-05-08T13:10:57.767 に答える
0

これはあなたが望むことをするべきだと思います:

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