2010-05-18 61 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