【发布时间】:2018-08-21 17:18:42
【问题描述】:
我制作了一个应用程序,它为字母 A-Z = 1-26 赋值并将它们相加。 如何从输入字段中获取每个字母的值? 例如,如果我输入“bb”,它将在跨度中输出 b(2)+b(2) = 4,id 为“a”
https://codepen.io/anon/pen/pOvNXd
function myFunction() {
//code
var alp = {a:1, b:2, c:3, d:4, e:5, f:6, g:7, h:8, i:9, j:10, k:11, l:12, m:13, n:14, o:15, p:16, q:17, r:18, s:19, t:20, u:21, v:22, w:23, x:24, y:25, z:26, ' ':0, '"':0, "'":0, '!': 0, '#':0, '$':0, '%':0, '(':0, ')':0, '+':0, '-':0, '*':0, '/':0, '=':0, '_':0, '@':0, '?':0, '&':0, '.':0, ',':0, ':':0, ';':0}
//starting value
var str = document.getElementById("txt").value;
var n = str.length;
var total = 0;
//counter
for (var i = 0; i < str.length; i++)
total += alp[str[i]]
//output
document.getElementById("res").innerHTML = total;
document.getElementById("a").innerHTML = n;
}
<html>
<head>
<link href="https://fonts.googleapis.com/css?family=Roboto+Condensed" rel="stylesheet">
</head>
<body>
<div id="wrapper">
<center>
<h1>Task</h1><br>
<input type="text" name="fname" id="txt" style="width: 500px; font-size: 125%" size="60px" value="" placeholder="Type something..." oninput="myFunction()">
<br><br>
<p style="color: RGB(0,186,0)">Sum</p>
<span id="res" style="color: RGB(0,186,0)">0</span>
<br>
<p id="a">0</p>
</center>
</div>
</body>
</html>
【问题讨论】:
-
请在问题中添加相关部分。 minimal reproducible example
-
你在
for循环中缺少i++,所以你有一个无限循环。 -
不清楚你在问什么,你想得到什么价值?您还参考了一些
span,如果是,请提供必要的标记。 -
我希望当我在输入字段中输入一个单词来获取每个字母的值并输出第二个跨度中的值,id 为 'a' 例如,如果我输入 bb,它将输出 'b (2)+b(2)' = 4 在 id 为 'a' 的跨度中 n var 只是一个测试
-
我认为您应该使用提供的解释更新问题,因为目前它很混乱。另一个技巧是摆脱
id="a",而是将其称为id="expression-and-result"或类似名称,代码在这方面将立即变得不言自明。你会忘记一个月或更早的a是什么。
标签: javascript