2012-02-19 3 views
1

Мне нужно, чтобы каждый символ передавался .html(), как это не кодируется. Например, .html('>'), чтобы сохранить символ менее чем >, а не &lt;. Как мне это сделать? В идеале, решение будет применить ко всем «специальным» символам, например. <, & и т.д..html(), чтобы не кодировать пройденное значение

<h1 id="my-title"></h1> 

// JavaScript/jQuery code. 
$('#my-title').html('>'); 
... 
... 
// Somewhere else in the code, I need to retrieve the value back by calling 
// var v = $('#my-title').html(); 

ответ

1

Вместо .html() использования .text() для сохранения и извлечения значения.

$('#my-title').text('>'); 
var v = $('#my-title').text(); 

alert(v); // alerts > 

Обратите внимание, что вам нужно использовать .text() для сохранения значения, а также. Там причина, почему < и > стали кодироваться ...

+0

Параметр 'HTML()' функция делает закодирован. попробуйте следующее: '$ ('# my-title'). text ('>'); var v = $ ('# my-title'). Html(); ' – gdoron

+2

Конечно, но если у вас есть' $ ('# my-title'). Html (''); var v = $ ('# my-title'). text(); 'он ничего не показывает, потому что считает, что' 'является тегом. http://jsfiddle.net/HtbG5/2/ – JJJ

2

Использование text() вместо html()

var v = $('#my-title').text(); 
0

text не будет кодировать значение:

$('#my-title').html('>'); 
alert($('#my-title').text() + ' not encoded'); 
alert($('#my-title').html() + ' encoded'); 
​ 

JSFiddle DEMO

+0

Это работает, когда это значение равно, например, '>', но, как указывает @Juhana, он потерпит неудачу, когда значение равно, например. ''. Спасибо за jsFiddle, хотя (+1). – moey