此代码有什么问题? 我想要大写每个单词的第一个字母
function capitalizeEachWord(str)
{
var words = str.split(" ");
var arr = Array();
for (i in words)
{
temp = words[i].toLowerCase();
temp = temp.charAt(0).toUpperCase() + temp.substring(1);
arr.push(temp);
}
return arr.join(" ");
var first=document.getElementById(textbox1).value;
document.getElementById("resualt").innerHTML=arr;
}
答案 0 :(得分:0)
如果ID resualt
正确,请尝试此操作。我已经设置了小提琴手进行测试。
document.getElementById("resualt").innerHTML = str.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
答案 1 :(得分:0)
您在更新元素之前从函数返回。
function capitalizeEachWord(str)
{
var words = str.split(" ");
var arr = Array();
for (i in words)
{
temp = words[i].toLowerCase();
temp = temp.charAt(0).toUpperCase() + temp.substring(1);
arr.push(temp);
}
return arr.join(" "); // From now on, it's dead code.
var first=document.getElementById(textbox1).value;
document.getElementById("resualt").innerHTML=arr;
}
尝试这样做:
function capitalizeEachWord(str)
{
var words = str.split(" ");
var arr = Array();
for (i in words)
{
temp = words[i].toLowerCase();
temp = temp.charAt(0).toUpperCase() + temp.substring(1);
arr.push(temp);
}
var strCapitalized = arr.join(" "); // Store it in a variable
var first=document.getElementById(textbox1).value;
document.getElementById("resualt").innerHTML = strCapitalized; // Use the variable
}
答案 2 :(得分:0)
通过使用jQuery,您可以执行此操作,如下所示:
演示:https://jsfiddle.net/cxow8198/3/
<input type="text" id="input">
<script>
//usage
$("input").keyup(function() {
toUpper(this);
});
//function
function toUpper(obj) {
var mystring = obj.value;
var sp = mystring.split(' ');
var wl=0;
var f ,r;
var word = new Array();
for (i = 0 ; i < sp.length ; i ++ ) {
f = sp[i].substring(0,1).toUpperCase();
r = sp[i].substring(1).toLowerCase();
word[i] = f+r;
}
newstring = word.join(' ');
obj.value = newstring;
return true;
}
</script>
查询代码段以生成字符串中每个单词的第一个字母的大写字母。这可用于防止用户在将数据输入表单时输入标题或文本的全部大写。希望这会有所帮助...