是否可以使用jQuery / javascript将某个类名中每个单词的首字母大写?我只想把标有“大写”类的所有字段的每个单词的第一个字母大写。
我只是希望它在键入时执行,我知道你可以用css来做,但这并不好,因为它仍然以小写字母的形式存储在数据库中。
答案 0 :(得分:7)
这是一个简单的jQuery插件,可以帮到你:
$.fn.capitalise = function() {
return this.each(function() {
var $this = $(this),
text = $this.text(),
tokens = text.split(" ").filter(function(t) {return t != ""; }),
res = [],
i,
len,
component;
for (i = 0, len = tokens.length; i < len; i++) {
component = tokens[i];
res.push(component.substring(0, 1).toUpperCase());
res.push(component.substring(1));
res.push(" "); // put space back in
}
$this.text(res.join(""));
});
};
然后打电话给:
$(".myClass").capitalise();
这里是working example。
答案 1 :(得分:5)
解决方案是这样的:
工作样本:http://jsfiddle.net/Py7rW/7/
$('.captial').each(function(){
var arr = $(this).text().split(' ');
var result = "";
for (var x=0; x<arr.length; x++)
result+=arr[x].substring(0,1).toUpperCase()+arr[x].substring(1)+' ';
$(this).text(result.substring(0, result.length-1));
});
答案 2 :(得分:2)
您可以尝试以下内容:
$('.capital').each(function() {
var s = $(this).text().split(' ');
for(var i=0; i<s.length; i++) {
s[i] = s[i].substring(0,1).toUpperCase() + s[i].substring(1);
}
s = s.join(' ');
$(this).text(s);
}
答案 3 :(得分:1)
我认为这会奏效:)
$('.capital').css("text-transform","capitalize");
答案 4 :(得分:1)
我会使用css text-transform:capitalize来避免在每个按键上运行它, 并在更改时更改字段的实际值。
field.value= field.value.replace(/((^| )[a-z])/g, function(a, b){
return b.toUpperCase();
});
答案 5 :(得分:0)
简单步骤将每个单词的第一个字母大写:
$(document).on('keyup', '#myText', function () {
this.value = this.value.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
});
答案 6 :(得分:-1)
你可以这样做。只要文本发生变化,这将使文本框中的文本大写:
$(document).ready(function() {
$('.capital').change(function() {
var arr = $(this).val().split(' ');
var result = "";
for (var i=0; i<arr.length; i++){
result += arr[i].substring(0,1).toUpperCase() + arr[i].substring(1);
if (i < arr.length-1) {
result += ' ';
}
}
$(this).val(result);
})
});
你可以在这里看到一个工作小提琴:http://jsfiddle.net/5dMg7/