2010-05-18 29 views
0

我正在探索Django并且遇到了这个问题。Django:我该如何加入

如何在{{article.content_html|safe}}内加入<span class="label">Note:</span>

{{article.content_html|safe}}的内容是段落,我只是想在第一段加上<span class="label">Note:</span>

谢谢!

回答

0

有没有简单的方法。您可以轻松地预先添加到所有文章。

<span class="label">Note:</span> 
{{article.content_html|safe}} 

如果不帮你考虑改变article.content_html的结构,这样你就可以从Django模板块操作,所以它应该是这个样子

{{article.content_header}} 
<span class="label">Note:</span> 
{{article.content_html}} 

如果该解决方案对你来说不可行,你绝对需要解析和修改article.content_html的内容,编写你自己的自定义过滤器。您可以在这里找到有关编写自定义过滤器的文档http://docs.djangoproject.com/en/dev/howto/custom-template-tags/#writing-custom-template-filters

+0

谢谢伊万! ;) – voidnothings 2010-05-18 13:42:11

0

另一种方法可以是用javascript来做到这一点。在jQuery中,它看起来是这样的:

var first_p_text = $("p:first").text() 
$("p:first").html("<span class="label">Note:</span>" + first_p_text) 

注意的是,如果有你的第一个P,$(“P:第一”)内的其他元素。文本()将抓住从这些以及文本 - 看到http://api.jquery.com/text/

当然,这依赖于在客户端体面的JavaScript支持。

0

jQuery是最简单和最容易实现的。你只需要与前置通话(documentation)一行:

$('p:first').prepend('<span class="label">Note:</span>'); 

说明:'号码:第一个'类似于一个jQuery selector':第一,孩子CSS selector。它将选择第一段,然后预拨电话将把跨度插入到所选段落中。

注:如果你的内容之前,页面上的段落,你可以有一个div来围绕着它:

<div id='ilovesmybbq'>{{article.content_html|safe}}</div> 

然后jQuery的电话是:

$('#ilovesmybbq p:first').prepend('<span class="label">Note:</span>'); 
+0

爱如何用jQuery获得答案。没有什么是免疫的 – jguffey 2014-03-28 19:53:24