私はHTMLノードのリストを持っています。問題は、ノードがCMSから書き込まれているため、あらゆる種類の改行とスペースが付いてくることです。したがって、私はthis questionでdescibedメソッドを使用してJSでスペースを削除しています。しかし、問題はIE(9ではなく)では空白が親ノードの子リストの一部ではなく、そのメソッドをIEで役に立たないものにすることです。しかし、IE 7(またはIE 7をエミュレートするIE 9以上)では改行が無視されるため、明確になっています。それはIE 8を厄介者にしてしまいます。私は、改行が実際にouterHTML
の一部であることを発見し、outerHTML
の簡単なリセットがトリックなかったこと - そのような:IE 8 JavaScriptを使用してノード間の改行を削除する
node.outerHTML = node.outerHTML
は、しかし、これはintirelyノードをリセットし、したがって、すべてのイベントおよびその他の設定を削除しますノード上では、実際にはそれほど良いものではありません。
私の質問は今です:ノードからの改行を削除する方法はありますかノードのouterHTML whitoutノードをリセットしますか?私はズーム:1で試してみましたが、無駄です。誰もがこれについての経験があることを願っています。
HTMLは、多かれ少なかれ、このようなものです:
<div class="items">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
が、それは、任意のタグを処理することができるはず<div>
である必要はありません。 CSSは非常に単純であり、このような何かを行く:
.items { white-space: nowrap; }
.items .item { display: inline-block; background: red; height: 150px; width: 180px; }
とIE(6-7(8))スタイルはこのようなものです:
.items .item { *display: inline; *zoom: 1; }
私はそれを "削除" することが可能であることを知っていますこのようなCSSを介してスペースを:
.items { word-spacing: -0.33em; letter-spacing: -0.33em; }
.items .item { word-spacing: normal; letter-spacing: normal; }
私はこれが時々物事をねじ込む醜いハックであることがわかります。だから私は既にJSを介して要素を操作しているので、私はJSを介してスペースを削除することを望んでいました。
私はミーン何の小さなプレビュー:
@Tokimonあなたはサンプルを投稿することができますあなたのCMSが投げているHTML?テストケースとして使用できます。 :) –
私はHTMLを追加しましたが、まだCMSに実装されていないので、HTMLはまっすぐです。 – Tokimon
@ Tokimon - 待ってます。改行を削除する、または空の要素を削除することを意味します*。これらの2つの大きな違いがあります。 –