2011-10-28 4 views
2

私は、順序付けられていないリストを含むDIVを持っています。私はこれをコピーして、それをちょっとフォーマットし直してから、再びDOMに挿入したいと思っています。これは正常に動作し、IEのexecpt(8と9でテスト済みです)では、要素のコピーがコピーではなくライブであるように見えます。jQuery:IEでのDOMのコピーではなく、ライブDOMへの可変ポイントのみ

はここで何が起こるかです:

var target = $('.cities').eq(0) //grab my list 

var $bigList = $(target).find('li') // grab all the list items 

alert($bigList.eq(0).html()) // this displays the first list item, no problem 

$(target).html(emptyList) // I put in a bunch of placeholder HTML 

alert($bigList.eq(0).html()) // EMPTY on IE, same as first alert() on all others 

$bigListはまだDOMを指して、代わりの値としてコピーされているようです。どうすればこの問題を回避できますか?

答えて

1

代わり$(target).html(emptyList)使用$bigList.remove();の:http://jsfiddle.net/gilly3/FP5kX/

編集:コール両方文:

$bigList.remove(); 
target.html(emptyList); 

http://jsfiddle.net/gilly3/FP5kX/2/

+0

申し訳ありませんが、 "emptylist"は後で使用する一部のプレースホルダHTMLです。 –

+0

右。 '.remove()'はDOMから要素を削除しますが、削除しません。あなたはまだあなたの要素を持っています。私が投稿したjsfiddleを参照してください。 – gilly3

+0

実際には、さらに良いことに、このjsfiddleを参照してください。http://jsfiddle.net/gilly3/FP5kX/1/ – gilly3

0

あなたがコピーを取得するクローンを使用して、.citiesのクローンを作成してみ実際の要素ではない

var target = $('.cities').clone()[0];