我正在尝试在Chrome中的元素的开始和结束标记之间设置innerText,但到目前为止它无效。这是为什么?我试过这些:
element.balanceText = "Changed.";
element.innerText = "Changed.";
element.innerHTML = "Changed.";
element.textContent = "Changed.";
element.value = "Changed.";
$(element).val("Changed.");
答案 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不支持文本插入。
因为它是一个空元素