我正在尝试将我在文本输入中输入的所有内容大写js上的cap函数正常工作我可以在控制台上看到但是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>
这里我可以看到大写功能在控制台上工作正常但在HTML文件中不起作用
答案 0 :(得分:4)
input
元素没有.innerHTML
属性。他们有.value
属性。
只有具有开始和结束标记的元素才能包含其中的任何HTML,因此只有<div>
,<span>
,<p>
等元素才能使用{{1} }。
您在.innerHTML
功能中正确访问了value
。
clr
&#13;
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;
}
&#13;
答案 1 :(得分:0)
对于<input type="text">
,没有innerHTML,它们具有value
属性(您实际在caps
函数中使用它)。
这应该有效:
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;
}
&#13;
<!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>
&#13;