Предположим, что следующий элемент (найдите конечное и ведущее пространства):
<p>
<span class="item">Lorem Ipsum is simply dummy text </span><span class="item">of the printing and typesetting</span><span class="item"> industry.</span>
</p>
Я хочу заменить все пробелы на
, из-за display: inline-block
странного поведения, показанного здесь: http://jsfiddle.net/SQuUZ/ (dunno about все браузеры, но последние Chrome и Firefox действуют одинаково).
Теперь, поскольку javascript является вариантом здесь, так же как и jQuery, я мог:
$('p').text($('p').text().replace(/ /g, ' '));
Но он выходит из
и переходит в a mess of entities
.
Очевидно, для таких целей мы могли бы использовать $('p').html()
:
$('p').html($('p').html().replace(/ /g, ' '));
Но это еще хуже, потому что он также добавляет
внутри самих тегов:
<p>
<span class="item">Lorem Ipsum is simply dummy text </span><span class="item">of the printing and typesetting</span><span class="item"> industry.</span>
</p>
<!-- TL;DR -->
<span class="item"></span> <!-- is actually invalid... -->
И это все ломает...
Примечания:
- Внутри контейнера не будет
<span>
элементов с классомitem
(что также не всегда может быть<p>
). - Медленные регулярные выражения - это опция (проблема в том, что я не могу придумать один...).
Какие параметры у меня есть?
Обновление:
На самом деле, может ли кто-нибудь объяснить, почему существует такая ошибка с этой многострочной/однострочной display: inline-block;
? (См. Ссылку на скрипку выше и рассмотрите...)
Вопрос перенесен на display: inline-block; странное поведение расстояния