0

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

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

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

4

2 回答 2

2

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

未捕获的语法错误:保留字“var”

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

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>

于 2014-10-15T16:36:23.583 回答
1

输入是一个无效元素你不能做任何事情

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

在这里查看教程http://naveendev.hol.es/tutorial/void-elements-in-html

NoModificationAllowedError:无法在“HTMLElement”上设置“innerText”属性:“input”元素不支持文本插入。

因为它是一个空元素

于 2014-10-15T16:35:54.600 回答