当我点击按钮并且它出现在网页上时我想做第一个字母toUpperCase();但我不知道如何正确。我这样做了:
function toUpper() {
arr.charAt(0).toUpperCase() + arr.slice(1);
}
但这似乎不正确,请解释如何正确地做到这一点?
<input type="text" id="inp">
<button class="btn">Push to array</button>
<button class="delete">Delete</button>
<br><br>
<div id="list"></div>
<script>
var inp = document.getElementById("inp");
var btn = document.querySelector(".btn");
var list = document.querySelector('#list');
var del = document.querySelector(".delete");
var arr = [];
btn.addEventListener('click', function() {
var valInp = inp.value;
if (valInp === '') { return; }
arr.push(valInp);
inp.value = "";
list.innerHTML = arr.join("<br>").trim();
function toUpper() {
arr.charAt(0).toUpperCase() + arr.slice(1);
}
});
del.addEventListener('click', function(){
arr.pop();
list.innerHTML = arr.join("<br>").trim();
});
</script>
答案 0 :(得分:4)
你需要在某个地方调用toUpper
,目前你只需要在那个click事件处理程序中定义它。最好从该事件处理程序中定义它,因为它可以一次又一次地重复使用。
您应该希望toUpper
函数接受string
(因为它应该对string
执行某些操作,但不应在arr
上执行array
{1}}),然后返回一个将第一个char转换为大写字符的新字符串。
将已转换的字符串推送到该数组,然后就完成了。
var inp = document.getElementById("inp");
var btn = document.querySelector(".btn");
var list = document.querySelector('#list');
var del = document.querySelector(".delete");
var arr = [];
// Move the function out, as it can be reused.
// Input is a string, and you need to return the result of the toUppered string.
function toUpper(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
}
btn.addEventListener('click', function() {
var valInp = inp.value;
if (valInp === '') { return; }
// Push the toUppered string into array.
arr.push(toUpper(valInp));
inp.value = "";
list.innerHTML = arr.join("<br>").trim();
});
del.addEventListener('click', function(){
arr.pop();
list.innerHTML = arr.join("<br>").trim();
});
&#13;
<input type="text" id="inp">
<button class="btn">Push to array</button>
<button class="delete">Delete</button>
<br><br>
<div id="list"></div>
&#13;