我正在尝试大写我在文本输入中键入的所有内容,我可以在控制台上看到的js上的caps函数工作正常,但是innerhtml函数不会更改html文件
function clr() {
document.getElementById("box").value = '';
}
function caps() {
var str = document.getElementById("box").value;
console.log(str);
var res = str.toUpperCase();
console.log(res);
document.getElementById("box").innerHTML = res;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>UI</title>
<link rel="stylesheet" href="css.css">
<script src="myscript.js"></script>
<body>
<div id="magic">
<input id="box">
<p id="pp">
<button onclick="clr()">Clear It</button>
<button onclick="caps()">Capitalize</button>
</p>
</div>
</body>
</html>
在这里,我可以看到caps函数在控制台上运行正常,但在HTML文件中却无法运行
最佳答案
input
元素没有.innerHTML
属性。它们具有.value
属性。
只有具有开始和结束标签的元素才能在其中包含任何HTML,因此只有<div>
,<span>
,<p>
等元素可以使用.innerHTML
。
您在value
函数中正确访问了clr
。
function clr() {
document.getElementById("box").value = '';
}
function caps() {
var str = document.getElementById("box").value;
console.log(str);
var res = str.toUpperCase();
console.log(res);
document.getElementById("box").value = res;
}
<div id="magic">
<input id="box">
<p id="pp">
<button onclick="clr()">Clear It</button>
<button onclick="caps()">Capitalize</button>
</p>
</div>
关于javascript - javascript innerhtml没有响应,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49114270/