以下html& javascript需要将输入的文本输入到输入字段中,并在按下提交时将每个单词的第一个字母大写。它运作不正常,我想知道我哪里出错了?
<script>
function myFunction() {
var words;
words = str.split(" ");
for (var i=0 ; i < words.length ; i++){
var testwd = words[i];
var firLet = testwd.substr(0,1);
var rest = testwd.substr(1, testwd.length -1)
words[i] = firLet.toUpperCase() + rest
}
document.write( words.join("demo"));
}
</script>
<!DOCTYPE html>
<html>
<body>
<p>Book Title</p>
<input id="words" value="18" />
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
</body>
</html>
我正在寻找纯粹的Javascript解决方案。
答案 0 :(得分:1)
你关闭了!继续。
首先 - 使用本机Javascript从文本框中获取值,您需要使用
document.getElementById("words").value;
您应该将其设置为words
变量。我没有看到str
被用于什么,但实际上您可以在words
str.split(" ");
替换它
以下是工作代码的完整示例: (请记住,使用document.write(),您正在整个页面上进行编写...通常人们只是将值插入其他位置,因此您仍然可以在显示页面的同时保持页面动态输出)
<!DOCTYPE html>
<html>
<body>
<script>
function myFunction() {
var words = document.getElementById('words').value;
words = words.split(" ");
for (var i=0 ; i < words.length ; i++){
var testwd = words[i];
var firLet = testwd.substr(0,1);
var rest = testwd.substr(1, testwd.length -1)
words[i] = firLet.toUpperCase() + rest
}
document.write( words.join("demo"));
}
</script>
<p>Book Title</p>
<input id="words" value="18" />
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
</body>
</html>
答案 1 :(得分:0)
将var words;
替换为var words = document.getElementById("words");
//快速帮助
答案 2 :(得分:0)
你需要做这样的事情:
function myFunction(){
var words = document.getElementById("words").value.split(" ");
var content = "";
for (var i = 0; i < words.length; i++) {
content += words[i].substr(0, 1).toUpperCase() + words[i].substr(1, words[i].length - 1);
if(i<words.length-1)
content += " ";
}
document.getElementById("demo").innerText = content;
}
答案 3 :(得分:0)
如下所示?
function myFunction() {
document.getElementById('target').value = document.getElementById('target').value.replace(/\b[a-z]/g, function(a) { return a.toUpperCase(); });
};
&#13;
<input id="target" />
<button id="do" onclick="myFunction()">Go!</button>
&#13;
首先我们检测点击按钮的时间。然后我们将值设置为其原始值,但是......我们得到一个单词中的第一个字母,然后将其大写。
就这么简单!
答案 4 :(得分:0)
使用以下方法传递for循环中的每个拆分单词,并使用“”再次合并:
function capitalizeFirstLetter(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}