2011-08-29 47 views
0

下面是我當前的代碼。它工作正常,但我需要.code類元素顯示爲純文本,而不是呈現爲HTML。jQuery將HTML呈現爲帶有切換的純文本(切換工作正常,但不能將HTML轉換爲文本)

的jQuery:

$(document).ready(function() { 
$('.code').hide(); 
$('.codeLink').toggle(
    function() {  
    $(this).next('.code').fadeIn(); 
    $(this).addClass('close'); 
    }, 
    function() { 
     $(this).next('.code').fadeOut(); 
     $(this).removeClass('close'); 
    } 
); // end toggle 
}); 

HTML:

<a class="codeLink" style="margin-bottom: 10px; display: block;" href="#">Get The Code</a> 
<div class="code"><a class="benefitsQandA" href="#">Get an Instant Quote &amp; Apply</a></div> 

的.CODE類應該顯示在屏幕完全一樣對這一部分(在未呈現爲HTML換句話說剛作爲文本):

<a class="benefitsQandA" href="#">Get an Instant Quote &amp; Apply</a> 
+1

它只是HTML渲染的問題嗎?我不完全明白切換是如何涉及的。 – pimvdb

+0

最好在散列(「#」)上使用「null javascript」href,如下所示:href =「javascript://」 –

+0

不涉及切換,但它是更廣泛範圍的一部分, 。 – OldWest

回答

3

試試這個:

$(".code").text($(".code").html()); 
當然

,如果你正在做的,要多個div,你將需要使用。每個:

$(".code").each(function(){ 
    $(this).text($(this).html()); 
}); 
+0

值得注意的是。html()並不總是返回輸入的確切代碼,因爲它是DOM的表示。請參閱:http://api.jquery.com/html/「某些瀏覽器可能不會返回原始文檔中完全複製HTML源代碼的HTML」 – JustJohn

+0

嗯....好點。不確定可以做些什麼。 –

+0

JustJohn,它似乎在WebKit的更高版本中工作正常。 – OldWest

3

使用$(".code").text($(".code").html())

+0

這是第一次嘗試,但在切換並重新點擊關閉後,代碼轉到字符編碼,如:& lt; a class =「benefitsQandA」href =「#」& gt;獲得即時報價& amp; amp ;應用& lt;/a & gt; – OldWest

+0

您應該使用切換事件之外的代碼段。 –

+0

你似乎在尋找某種CSS技巧來逃避HTML字符,而AFAIK沒有一個。你需要用轉義的HTML代替HTML,而你的其他代碼只需要以某種方式來解釋。 – Blazemonger

1

正確的方法來處理這是爲了逃避你不想讓瀏覽器渲染的代碼,像這樣:

<a class="codeLink" style="margin-bottom: 10px; display: block;" href="#">Get The Code</a> 
<div class="code">&lt;a class="benefitsQandA" href="#"&gt;Get an Instant Quote &amp;amp; Apply&lt;/a&gt;</div> 

如果你不這樣做,那麼你不能保證從瀏覽器得到正確的輸出,因爲JQuery的.html()標記是.innerHTML的封裝(見http://api.jquery.com/html/),它並不總是返回你使用的完全相同的標記。

你可以看看像http://accessify.com/tools-and-wizards/developer-tools/quick-escape/這樣的工具來爲你逃跑。

維基百科也有reference of XML/HTML entity codes

1

你能不能從服務器做到這一點?

當用戶點擊切換按鈕時,將html傳遞給服務器,使用php替換<和>&lt;&gt;的字符,並將html返回到頁面。

除非你正在處理大量的數據,這應該不需要很長時間來處理。這樣你就可以完全得到原始標記的100%。

+0

爲什麼在PHP中如果Javascript至少和編程語言一樣強大? like:'t.replace(/&/ g,'&').replace(//g,'>')' – bart

+0

php不會'修改'您的原始文件來源.. javascript_may_ – rlemon

+0

來思考它,除非代碼被輸入到一個textarea或其他輸入元素,你將使用JavaScript將其發佈到服務器.... hrmm。 – rlemon