0

私はこのセクションを持っています。

<section class="note">
    Content-0: SomeContent that needs to be removed. Anything below this stays.
    <br />
    <div class="content1">Content-1: Stays <br /><br /></div>
    <div class="content2"><p>Content-2: Stays</p></div>
</section>

私が欲しいのは、ページの読み込みで Content-0 行を削除し、 を 2 つだけ持つことです。だから私はこのコードをロードしています...

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
    $(function () {
        var content1 = $('section.note div.content1');
        var content2 = $('section.note div.content2');

        $('section.note').html('').append(content1).append(content2);
        alert($('section.note').html());
    });
</script>

しかし、IE(すべてのバージョン)で奇妙な動作をしています。IE 10 では、div を追加していますが、コンテンツはありません。他の IE バージョンでは、Content-0 を削除せず、すべてのものをそのまま維持します。

FireFoxでは問題なく動作します。

4

2 に答える 2

2

.html('')IE が要素を非常に迅速にクリーンアップしているように見えるため、前の呼び出しによって要素が削除されたため、jquery は要素を正しく移動できません。これは、複製またはデタッチすることで解決できます。

http://jsfiddle.net/DrxFV/2/

var content1 = $('section.note div.content1').detach();
var content2 = $('section.note div.content2').detach();
$('section.note').html('').append(content1).append(content2); 
于 2013-04-15T21:54:01.613 に答える
2

これを試して:

$(function () {
    var content1 = $('section.note div.content1').clone();
    var content2 = $('section.note div.content2').clone();

    $('section.note').html('').append(content1).append(content2);
    alert($('section.note').html());
});

基本的に何が起こっていたかとvar content1 = $('section.note div.content1')いうと、実際の DOM 要素を参照している場合、最初に DOM 要素を削除して$('section.note').html('')から、それらの参照を再度追加しますが、html を ''. 元の DOM 要素を参照していないため、これらの div を複製すると修正されます。

于 2013-04-15T21:48:36.157 に答える