Как преобразовать HTML в текст с помощью jQuery?
Я хотел бы сделать так, чтобы дети любого элемента с классом "snippet" считывались как текст вместо HTML. Я знаю, что для этого мне нужно изменить <
и >
знаки, чтобы HTML-страница считывала их как текст. Я пытался это сделать, но, к сожалению, у меня есть только:
function(){
$('.snippet')
}
5 ответов
вы можете использовать jQuery .text()
функция, которая удалит теги HTML:
var text_only = $('.snippet').text();
вот демонстрация:http://jsfiddle.net/meZjw/
документы на .text()
: http://api.jquery.com/text
обновление
Sime Vidas имеет хороший момент, Вы можете перебирать различные .snippet
элементы, меняющие структуру HTML по одному:
$.each($('.snippet'), function (index, obj) {
var $this = $(this);
$this.html($this.text());
});
вот демо используя $.each()
: http://jsfiddle.net/meZjw/1/
обновление
Aepheus имеет хороший момент, я не знаю, если это то, что спрашивают, но вы можете сделать функцию, которая будет избегать HTML-сущностей, как на других языках:
function htmlEntities(str) {
return String(str).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
}
вот демо:http://jsfiddle.net/meZjw/2/
обновление
вы также можете использовать .text()
и .html()
в обратном порядке, как мой пример выше, чтобы показать HTML элемента как простой текст:
$.each($('.snippet'), function (index, obj) {
var $this = $(this);
$this.text($this.html());
});
вот демо:http://jsfiddle.net/meZjw/31/
может быть, вы хотите, чтобы ваш код, чтобы быть показано? http://jsfiddle.net/vVgvt/4/
$('.snippet').html().replace(/</g, "<").replace(/>/g, ">");
этой - это то, что я использую:
<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>
вырезать те части, которые вам нужны.