我想通过js函数在
中设置文本;我只是将 innerText
属性设置为新值。文本为多行,应按原样显示。但是,浏览器会删除换行符,并且整个文本显示为一行:
document.getElementById(“ my_textarea1”)。innerText =“ foo \ nbar”; //显示为“ foobar”
document.getElementById(“ my_textarea2”)。innerText =“ foo \
bar“; //显示为“ foobar”
document.getElementById(“ my_textarea3”)。innerText =`foo \
酒吧`; //再一次,“ foobar”
在
中设置文本时,是否可以保留换行符?
答案 0 :(得分:3)
尝试一下。我使用属性“值”或“ innerHTML”或“ textContent”:
var area = document.getElementById("my_textarea");
area.value = "foo\nbar";
var area_2 = document.getElementById("my_textarea_2");
area_2.innerHTML = "foo\nbar";
var area_3 = document.getElementById("my_textarea_3");
area_3.textContent = "foo\nbar";
<textarea id="my_textarea"></textarea>
<textarea id="my_textarea_2"></textarea>
<textarea id="my_textarea_3"></textarea>
答案 1 :(得分:1)
您可以设置文本区域的value
,这可以与\n
和
`foo\
bar`;
document.querySelector("#my_textarea").value = "foo\nbar"
<textarea id="my_textarea"></textarea>
如果这对您不起作用,请使用innerHTML
属性,方法相同:
document.querySelector("#my_textarea").innerHTML = "foo\nbar"
<textarea id="my_textarea"></textarea>
答案 2 :(得分:0)
使用area.innerHTML代替,innerText属性去除换行符
var area = document.getElementById("my_textarea");
area.innerHTML = "foo\nbar";
<textarea id="my_textarea">
</textarea>
答案 3 :(得分:0)
您可以为此使用\r
或\n
。
另外,HTML还支持\t
在两个单词之间应用制表符。
document.querySelector("#my_textarea1").value = "foo\rbar"
document.querySelector("#my_textarea2").value = "foo\nbar"
document.querySelector("#my_textarea3").value = "foo\tbar"
<!DOCTYPE html>
<html>
<body>
<p>New line using "\r" :</p>
<textarea id="my_textarea1"></textarea>
<br>
<p>New line using "\n" :</p>
<textarea id="my_textarea2"></textarea>
<br>
<p>Tab between tow words using "\t" :</p>
<textarea id="my_textarea3"></textarea>
</body>
</html>
答案 4 :(得分:0)
根据HTML Spec:
element . innerText [ = value ]
“按原样”返回元素的文本内容。
可以设置,以给定值替换元素的子元素,但换行符转换为
br
元素。
意思是,你应该做的事情。正如其他答案所指出的那样,您可以使用textContent
,value
和innerHTML
,所有这些都更可能起作用。
如果您设置使用textContent
,则有一些选项/特点,我将在下面列出:
使用ES6编译器,例如Babel.js
您可以通过在Stack Overflow的代码段编辑器中启用ES6进行测试。
请参阅下面的代码片段中的(3)选项
注意:这些似乎可以在OSX Safari中使用,但不能在Google Chrome中使用
// Call toString() method
document.getElementById('my_textarea').innerText = "foo\nbar".toString();
// Include the line return character
document.getElementById('my_textarea2').innerText = "foo\r\nbar";
// Apparently, any whitespace or escape character will work
document.getElementById('my_textarea3').innerText = "foo \nbar";
<textarea id="my_textarea"></textarea>
<textarea id="my_textarea2"></textarea>
<textarea id="my_textarea3"></textarea>