如何大写JS数组中的每个单词

时间:2016-09-20 09:27:55

标签: javascript jquery

我试图在一个简单的JS数组中大写每个首字母, 代码在控制台日志中正常工作 - 但不在输出

感谢。

<select id="selectId">
<option value="hello">one</option>
<option value="hello">two</option>
<option value="hello">three</option>

var arr=[];
$("#selectId >option").each(function() {

   arr.push(this.text.substr(0,1).toUpperCase() + this.text.substr(1));

});
var i, len, text;
for (i = 0, len = arr.length, text = ""; i < len; i++) {

    console.log(arr[i]);
    $("#select").text(arr[i]);
}

fiddle

6 个答案:

答案 0 :(得分:1)

var arr=[];
$("#selectId >option").each(function() {

   arr.push(this.text.substr(0,1).toUpperCase() + this.text.substr(1));

});
var i, len, text;
for (i = 0, len = arr.length, text = ""; i < len; i++) {

    console.log(arr[i]);
    $("#select").text(arr[i]);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
<select id="selectId" style="text-transform: capitalize;">
<option value="hello">one</option>
<option value="hello">two</option>
<option value="hello">three</option>

答案 1 :(得分:1)

在css中添加一个类

.capitalize{text-transform: capitalize;}

并在HTML中添加您想要大写的内容。

答案 2 :(得分:0)

<select name="selectId">
<option value="hello">one</option>
<option value="hello">two</option>
<option value="hello">three</option>

首先选择数组中的所有下拉列值

var selected = $('select[name="selectId"]').map(function(){
    if ($(this).val())
        return $(this).val();
}).get();

现在使用String.toUpperCase()

var upperCasedArray = $.map(selected , function(item, index) {
    return item.toUpperCase();
});

答案 3 :(得分:0)

使用substring而不是substr。子串在更多浏览器中被理解。 另一种解决方案:

    output = t.render(context)

答案 4 :(得分:0)

您需要编辑每个选项文本,而不是“选择文本”,这实际上并不意味着什么。

$("#selectId > option").each(function() {
   $(this).text(
       this.text.substr(0,1).toUpperCase() + this.text.substr(1)
   );
});

为简单起见,我删除了你的中间数组。

答案 5 :(得分:0)

老实说,你不需要像jquery这样的lib:

&#13;
&#13;
var arr = Array.prototype.map.call(document.querySelector("#selectId").options, function (option) {
    var text = option.textContent;
    return option.textContent = text.substr(0, 1).toUpperCase() + text.substr(1);
});

console.log(arr);
&#13;
<select id="selectId">
    <option value="hello">one</option>
    <option value="hello">two</option>
    <option value="hello">three</option>
</select>
&#13;
&#13;
&#13;