【发布时间】:2011-06-11 22:34:27
【问题描述】:
我从 Tumblr API 获得的结果不可靠。当我得到一行文本时,我只收到文本。当有多行时,每行都包含在<p> 标记中。所以我要么得到:
This is a value with no second line
或
<p>This is a value</p>
<p>with a second line</p>
我希望两者看起来相同。我一直在值周围手动添加<p>,但这会导致:
<p><p>This is a value</p>
<p>with a second line</p></p>
关于多行值。
我对如何解决这个问题有一些想法,但不确定哪个是最好的。
- 创建新的 CSS 样式
p p {}以抵消搞砸的样式 - 使用jQuery获取冗余
<p>标签的DOM内容并使其成为非冗余 - 只需将文本加载到一个jQuery函数中,看看是否有
<p>标签,如果没有,添加它们,然后将结果写入DOM。
我不确定选项 1 是否能很好地工作(尤其是跨浏览器),而且它似乎有点 hacky。关于选项 2 或 3 是否更好,以及我将如何实施的任何想法?
编辑:应该提到我正在玩 Tumblr 主题,所以我无法使用 Python/PHP/ASP/etc(这对我来说更容易!)。
【问题讨论】:
-
@Zac 只需在字符串中搜索
"<p>"序列。如果不存在,请将字符串包装在"<p>"标记中。 -
@Michael 如果消息中有 no
"<p>"序列,您会将字符串包装在 P 标签中only。如果消息是多行的,则消息中至少有两个"<p>"序列,因此您不会将字符串包装在 P 标记中...... -
@Sime - 灯光已显示,我收回我的评论。干杯!
-
不要选择选项 1,因为您的 HTML 无效。
-
@melhosseiny - 我同意。但是如果他使用 jquery 作为修复,HTML 无论如何都是无效的。禁用javascript,您仍然遇到同样的问题;)