让我们假设以下元素(查找尾随和前导空格):
<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/(我不了解所有浏览器,但最新的 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;
?(请参阅上面的小提琴链接,并检查...)