我想使它成爲具有「片段」類的任何元素的子元素都被讀爲文本而不是HTML。我知道要做到這一點,我需要更改<
和>
標誌,以便HTML頁面將它們作爲文本讀取。我一直在努力這樣做,但不幸的是,我只有:如何將HTML轉換爲使用jQuery的文本?
function(){
$('.snippet')
}
我想使它成爲具有「片段」類的任何元素的子元素都被讀爲文本而不是HTML。我知道要做到這一點,我需要更改<
和>
標誌,以便HTML頁面將它們作爲文本讀取。我一直在努力這樣做,但不幸的是,我只有:如何將HTML轉換爲使用jQuery的文本?
function(){
$('.snippet')
}
您可以使用jQuery的.text()
功能,將刪除HTML標籤:
var text_only = $('.snippet').text();
這裏是一個演示:http://jsfiddle.net/meZjw/
Docs for .text()
:http://api.jquery.com/text
UPDATE
森達維達斯具有良好的時候,你可以通過不同的.snippet
元素重複一次改變他們的HTML結構之一:使用$.each()
演示
$.each($('.snippet'), function (index, obj) {
var $this = $(this);
$this.html($this.text());
});
這裏:http://jsfiddle.net/meZjw/1/
UPDATE
Aepheus有一個很好的觀點,我不知道這是什麼問,但你可以做一個功能,將ES斗篷HTML實體,如其他語言:
function htmlEntities(str) {
return String(str).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
}
這裏是演示:http://jsfiddle.net/meZjw/2/
UPDATE
您還可以使用.text()
和.html()
以相反的順序作爲我上面的例子,大意以純文本顯示元素的HTML:
$.each($('.snippet'), function (index, obj) {
var $this = $(this);
$this.text($this.html());
});
這裏是一個演示:http://jsfiddle.net/meZjw/31/
如果頁面上有多個「snippet」元素(很有可能),單獨使用`.snippet``選擇器是不夠的,因爲`.text()`返回* all的連接文本內容*匹配元素。 – 2011-12-16 17:39:05
這應該工作:
$('.snippet').each(function() {
$(this).text($(this).html());
});
試試這個
$('.snippet').text($('.snippet').html());
也許你想顯示你的代碼? http://jsfiddle.net/vVgvt/4/
$('.snippet').html().replace(/</g, "<").replace(/>/g, ">");
This是我用:
<span class="snippet">Who me? Why thank you.</span>
<div id="show_text"></div>
<script type="text/javascript" charset="utf-8">
(function($) {
var data = $('.snippet').text(); // or how ever you collect the data Object
$('div#show_text').append(decodeURIComponent(jQuery.param(data)));
// debug report:
if($.browser.mozilla){ //If you talk the talk, then you should toSource()
console.log(data.toSource());
}else{
console.log(data);
}
})(jQuery);
</script>
裁掉您需要的部分。
你是否要求一種顯示``的HTML的方法。snippet`元素作爲文本(帶標籤名稱)?我對你的措辭有點困惑。 – Blender 2011-12-16 17:37:26
當你問一個問題請具體,並舉一些例子。 – 2011-12-17 06:19:34