Javascript 为什么不运行?(每个单词的第一个字母大写)

Javascript 为什么不运行?(每个单词的第一个字母大写),javascript,Javascript,这个代码有什么问题? 我想把每个单词的第一个字母大写 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.

这个代码有什么问题? 我想把每个单词的第一个字母大写

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; 
     }

如果id
resalt
正确,请尝试此操作。我已经让小提琴手来测试了

 document.getElementById("resualt").innerHTML = str.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});

在更新元素之前,您将从函数返回

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
}

通过使用jQuery,您可以执行以下操作:

演示:


//用法
$(“输入”).keyup(函数(){
图珀(这个);
});
//作用
函数toUpper(obj){
var mystring=obj.value;
var sp=mystring.split(“”);
var-wl=0;
变量f,r;
var word=新数组();
对于(i=0;i

查询代码段以使字符串中每个单词的第一个字母大写。这可以用来防止用户在表单中输入数据时输入标题或文本的所有大写字母。希望这有助于…

@Andy更可能是因为他希望在执行
return
语句之后的函数中包含代码。或者他们可以尝试返回值,然后在调用该函数以获取新值时将elements innerHTML属性设置为单独的操作。然后他们得到一个有用的函数,可以用来设置任何元素,而不是只更新单个元素。
<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>