2011-03-09 50 views

回答

2

它不是JQuery的這樣做,但瀏覽器的HTML解析器。所以答案是否定的。

0

好的,所以我想我有一個答案你的問題。

我正在使用ajax瀏覽xml文件並在文本區域中創建代碼以將其複製到html文件中。不要問爲什麼,我只是說IT在這裏是限制性的。無論如何,看起來像這樣需要鏈接列表:

<a href="link.html#!page=01">Something</a> 

很好的.html()是使它看起來像這樣:

<a href="link.html#%21page=01">Something</a> 

這導致問題的頁面加載。我猜瀏覽器會改變%21 =>!在頁面加載後。

你需要做的是使一個變量出你想要爲.html()這樣的東西:

var prepReplaceEscape = $("#prep").html(); 

然後把它放在你想要的地方,並使用.replace():

$("#output").text(prepReplaceEscape.replace(/%21/gi,"!")); 

重要的是要有/%21/gi這允許.replace()方法繼續通過var。 「%21」就是你想要替換的。

我希望這會有所幫助。這有點亂,但它對我有用。

如果有人有更好的解決方案,請讓我知道,我很想知道。

1

我用同樣的問題所困擾我使用的是所見即所得的編輯器,並使用

<texarea id="htmlsource"><p>hello html</p></textarea> 

<script> 
var source= $("#htmlsource").html(); 
alert(source); 
</script> 

它編碼的HTML到GT & LTP &世界,你好& LT/P的時候& GT 這不是當使用.html()函數時,我期待什麼。從邏輯上講,你會希望輸出是HTML,而不是可讀文本的編碼字符串。

我在Chrome,IE9和Firefox7中測試了這一切,結果相同。要解決這個問題,你可以使用.text()函數。瘋了吧?!

<texarea id="htmlsource"><p>hello html</p></textarea> 

<script> 
var source= $("#htmlsource").text(); 
alert(source); 
</script> 

所以答案是YES你可以。

更新:我已經創建了一個解決方案的權威性指南,作爲fiddle here