我有一个下拉菜单。
我一直试图将我的选项中的文字大写,但我无法使其正常工作。
JS
$.each(responseData.assignments, function(i, v) {
var chapterNum = v.contentLabel;
var assessmentType = v.assessmentType.toLowerCase().replace(/_/g, " ");
var sameAssignmentType = $('#assignment-type-dd option').filter(function(){
return $(this).text() == assessmentType;
})
if(!sameAssignmentType.length){
$('#assignment-type-dd').append('<option value="' + assessmentType + '">' +
assessmentType + '</option>');
}
});
我已尝试将此代码链接到我的assessmentType
:
.charAt(0).toUpperCase() + this.slice(1)
但是一旦我这样做就会给出错误:
Uncaught TypeError: this.slice is not a function
有人可以在这里给我一点提示吗?感谢。
答案 0 :(得分:4)
这应该有效(CSS方法)
#assignment-type-dd option {
text-transform: capitalize;
}
如果您需要将整个选项文本设为大写,请使用此。
#assignment-type-dd option {
text-transform: uppercase;
}
如果您真的讨厌CSS或者您需要将大写文本传递给服务器或进行其他操作,请使用以下JavaScript代码
var capitalizeMe = "";
$("#assignment-type-dd option").each(function() {
capitalizeMe = $(this).text();
$(this).text(capitalizeMe.charAt(0).toUpperCase() + capitalizeMe.substring(1));
});
播放here
答案 1 :(得分:2)
请尝试使用this.slice(1)
。
assessmentType.slice(1)
答案 2 :(得分:2)
您需要将其格式化为
string.charAt(0).toUpperCase() + string.slice(1)
答案 3 :(得分:1)
一种解决方案可能是使用CSS规则:
select option {
text-transform:capitalize;
}
答案 4 :(得分:1)
我们也可以通过CSS交替操作字体设置。试试这个
<style>
select option {
text-transform:capitalize;
}
</style>
答案 5 :(得分:1)
这似乎是CSS最适合的问题。
.select {
text-transform: uppercase;
}
答案 6 :(得分:1)
除非你试图将每个单词的第一个字母大写,否则你不需要jQuery。在这种情况下,纯JavaScript解决方案(假设您的目标是h2
元素)将是:
var a = document.getElementsByTagName('h2');
for (i = 0; i < a.length; i++) {
var words = a[i].innerHTML.split(" ");
for (j = 0; j < words.length; j++) {
if (words[j][0] != "&") {
words[j] = "<span class='first-letter'>" + words[j][0] + "</span>" + words[j].substring(1);
}
}
a[i].innerHTML = words.join(" ");
}
http://jsfiddle.net/ryanpcmcquen/2uLLqy8r/
否则纯css将起作用:text-transform: capitalize;
https://developer.mozilla.org/en-US/docs/Web/CSS/text-transform
答案 7 :(得分:1)
如果它只是显示它,那么css文本转换应该有效。
如果你想用Javascript编程,我建议创建一个函数并根据需要调用它:
function stringCapitalize(str){
if (str){
str = str.charAt(0).toUpperCase() + str.slice(1);
return str;
}
}
stringCapitalize("moemen"); // returns "Moemen"
如果您认为在此应用程序中将定期使用它,请将其添加到内置String.prototype:
String.prototype.stringCapitalize = function () {
if (this){
str = this;
str = str.charAt(0).toUpperCase() + str.slice(1);
return str;
}
}
"moemen".stringCapitalize() // returns "Moemen"
答案 8 :(得分:0)
var name = prompt("what is your name");
var firstchar = name.slice(0, 1);
var firstcharuppercase = firstchar.toUpperCase();
var restofName = name.slice(1,name.length);
var capitlisedName = firstcharuppercase + restofName;
alert(" Hello " + capitlisedName);