我在文本框中看到&
,但我只想要&
。我认为这与浏览器解释javascript .innerHTML
的方式有关。
&
的文字必须通过div。出于某种原因,我无法直接为文本框指定值。
HTML代码
<div id='div'></div>
<input id='textbox' type='text' />
Javascript代码
var str = 'this & char';
$('#div').append("<div>" + str + "</div>");
$('#textbox').val($('#div').html());
实际HTML输出
<div>this & char</div>
用户在文本框中看到this & char
。
渴望HTML输出
<div>this & char</div>
用户在文本框中看到this & char
。
答案 0 :(得分:2)
您正在使用.html()
这是&
被翻译为&
的原因。由于它是一个输入,它必须是纯文本,因此,当您在输入字段中编写&
时,它将显示为文本。
$('#textbox').val($('#div').text());
答案 1 :(得分:1)
而不是使用html()
使用text()
。 html()
将字符串视为HTML,text()
将内容视为文字。
var str = 'this & char';
$('#div').append("<div>" + str + "</div>");
$('#textbox').val($('#div').text());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='div'></div>
<input id='textbox' type='text' />