如何在JavaScript中为Chrome设置innerText?

时间:2014-10-15 16:30:10

标签: javascript html google-chrome text innertext

我正在尝试在Chrome中的元素的开始和结束标记之间设置innerText,但到目前为止它无效。这是为什么?我试过这些:

element.balanceText = "Changed.";
element.innerText = "Changed.";
element.innerHTML = "Changed.";
element.textContent = "Changed.";
element.value = "Changed.";
$(element).val("Changed.");

这是小提琴:http://jsfiddle.net/La1tadpd/

2 个答案:

答案 0 :(得分:2)

您的jsFiddle配置为使用Coffee Script而不是纯JavaScript,因此,您收到错误:

  

未捕获的SyntaxError:保留字“var”

由于输入标记是无效的HTML,我建议删除浏览器创建的附加文本节点,然后用包含所需文本的div替换input元素:

var element = document.getElementById('test');
element.nextSibling.parentNode.removeChild(element.nextSibling);

var div = document.createElement('div');
div.textContent = 'Changed.';

element.parentNode.replaceChild(div, element);
<input id='test'>Hello</input>

答案 1 :(得分:1)

输入是一个空白元素,你不能做任何事情

所以我们写<input/>而不是<input></input>,因为它不能有自定义内容

结帐教程http://naveendev.hol.es/tutorial/void-elements-in-html

NoModificationAllowedError:无法设置&#39; innerText&#39;属性&#39; HTMLElement&#39;:&#39;输入&#39; element不支持文本插入。

因为它是一个空元素