$('#typo').remove().css('display', 'none').prependTo('#typo');
remove() はdomから要素を奪うと思ったので、この関数の後、オブジェクトはありません。したがって、なぜcssを変更し、prependTo
関数は何をしますか?
これは、id が重複していない限り意味がありません。おそらくtypo
in #typo
in prepend セレクター部分があります。
要素を削除するだけで、チェーンを使用してDOMにない場合でも要素を返し、cssを適用して非表示にし、別の要素の前に追加します。
だったら:
$('#typo').remove().css('display', 'none').prependTo('#typo1');
要素内に id の div が表示されますが、表示されtypo1
ません。
目に見えるタイプミスの中に目に見えないタイプミスを追加します (これは、HTML で重複した ID を使用すると無効になります)
<div id="typo">typo</div>
<div id="typo">typo1</div>
$('#typo').remove().css('display', 'none').prependTo('#typo');
目に見えるtypo1の中に目に見えないtypoを追加します
<div id="typo">typo</div>
<div id="typo1">typo1</div>
$('#typo').remove().css('display', 'none').prependTo('#typo1');
したがって、どちらも当てはまりません。
に置き換えるだけです
$('#typo').remove()
そしてファイルサイズを減らします:)
これをどうするかは次のとおりです。
$('#typo').remove() // removes the #typo element from the DOM
.css('display', 'none') // sets its display style to 'none'
.prependTo('#typo'); // and appends it BACK as first child of #typo
私はこれでテストしました:http://jsfiddle.net/8zZ6j/1/
<div>blah <span id="typo">typo</span> blah <span id="typo">typo2</span>
</div>
これは次のようになります。
<div>blah blah <span id="typo"><span id="typo" style="display: none;">typo</span>typo2</span></div>
typo
idを持つ要素を積み上げることが目的のようです