ESP8266 用于动态生成包含按钮的网页。 Javascript 嵌入在 c 中。按钮的标签(又名标题又名值)根据模式进行切换。
设置按钮标题的代码如下所示
document.getElementByID('idUnits').value='°C'
当使用chrome的开发工具并查看生成的html时,它看起来像
<input type="button" value="°C" id="idUnits" onclick="dendbuttons(this.id);">
如果我将鼠标悬停在该值上并右键单击“编辑属性”,它会显示 °C
但是,如果我将鼠标悬停在该值上并“编辑为 HTML”,它会向我提供要编辑的内容,其中包括不需要的amp;
<input type="button" value="&#176;C" id="idUnits" onclick="dendbuttons(this.id);">
如果我去掉放大器;编辑时(在 Chrome 的开发工具中)按钮 html 显示正确的符号。
为什么amp;添加到按钮的值。我如何鼓励它不要这样做。我正在使用类似的技术来动态更新其他带有度数符号的 html 元素,没有任何问题。仅当尝试使用“按钮”元素执行此操作时,我才会遇到问题。
最佳答案
这是因为 value
属性不解析您的 HTML。因此 htmlEntity(度数符号)字符串还不会被视为一个。尽管在使用“编辑为 HTML”时,您会突然解析您选择为 HTML 的所有内容,包括 htmlEntity 字符串。
我建议您使用按钮元素。
<button type="button" id="idUnits" onclick="dendbuttons(this.id);"></button>
并使用 .innerHTML
setter 添加 htmlEntity,它将把您的字符串解析为 HTML,从而解码符号并呈现它。
document.getElementByID('idUnits').innerHTML = '°C';
关于javascript - 无法使用 Javascript 将 HTML 按钮元素的标题或值设置为 C 度符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59473626/