【问题标题】:Adding CSS-classes to HTML-tags After Retrieving Them From Database从数据库中检索 CSS 类后将它们添加到 HTML 标记
【发布时间】:2016-12-15 14:38:52
【问题描述】:

对于我的博客,我希望能够在从数据库中检索 css-classes 到 html-tags 时添加它们。

例如,我的数据库中有以下内容,在名为body 的列中:

<p>
    SO is great
</p>

然后我在视图中输出它,像这样:

{{ blogpost.body }}

但我真正想要的是这样的:

<p class="class1 class2 class3">
    SO is great
</p>

我该怎么做?

我只能想到使用 JS 并添加类,但我不喜欢这个想法。

有没有办法预先格式化并将其保存在数据库中?或者这是一种不好的做法?

欢迎提出任何建议。

【问题讨论】:

  • 为什么不喜欢 JS 选项?
  • p 标签像字符串一样到达?
  • 在我看来,您已经在数据库中使用 html,因此在数据库中使用类不会造成任何损害。事实上,很多自定义 Wordpress 和 php 插件就是这样工作的。
  • @fuzzybaird 好的。我应该怎么做?您想为此创建一个答案吗?
  • @JuanCarlosOropeza 它会减慢加载速度。此外,我想找到一个更清洁的解决方案(至少在我看来更清洁),但如果您认为这是正确的方法,请随时创建一个解释这一点的答案,我很乐意对其进行测试。跨度>

标签: javascript php html css mysql


【解决方案1】:

所以不是

 SELECT body

你能试试吗:

SELECT REPLACE (body, '<p>', '<p class="class1 class2 class3">') as body

或更新您的数据库

UPDATE yourTable
SET body = REPLACE (body, '<p>', '<p class="class1 class2 class3">')
WHERE body LIKE '<p>%'

【讨论】:

  • 感谢您的回答。我的反对意见是这样的查询是不可读的(想象一下对每个 html 元素都这样做)。我认为更好的选择是在将主体插入数据库之前对其进行修改。
  • 查看更新版本,当然要扩展。但是你可以把它变成一个函数
【解决方案2】:

你能把它放在容器里吗?

<div class="{{ blogpost.tags }}">
    {{ blogpost.body }}
</div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多