很简单的问题,但我似乎找不到答案.
我有几个来自不同来源的HTML页面,它们的< h2>中有字符串.愚弄大写的元素.如:
< h2>该药有其他用途吗?< / h2>
我正在寻找这些常规案例,即
< h2>该药有其他用途吗?< / h2>
我开始用CSS将它们全部小写:
h2 { text-transform: lowercase; }
因为我希望通过创建一个只是将第一个字母大写的函数来使用jQuery来操作它们.
所以问题是:我如何编写一个jQuery函数来大写页面上每个h2元素的第一个字母?
阅读this thread后,尝试了这个:
function capitaliseFirstLetter(string){ return string.charAt(0).toUpperCase() + string.slice(1); } $('h2').each(function(){ capitaliseFirstLetter($(this).text()); });
但它不起作用,控制台没有给我任何错误,所以我不知道什么是错的.
编辑
我在这个问题上做了一个大的疏忽.运用
text-transform:小写
这个词我小写,所以
< h2> OVERDOSE怎么办?< / h2>
成为
< h2>如果过量,我该怎么办?< / h2>
当我使用@ marcelo-biffara的解决方案时. (或者:第一个字母的CSS语法.)
现在,我是否需要使用复杂的正则表达式才能将字符串“i”大写?
编辑2
如果有两次出现“i”(例如“如果我服用太多剂量该怎么办?”),我是否需要一个循环来替换它们“I”?
解决方法
你可以做这个功能
function capitalizeMe(val){ return val.charAt(0).toUpperCase()+val.substr(1).toLowerCase(); }
哦,也许你需要删除你的css h2规则
你可以像这样把它应用到你的h2
$('h2').each(function(){ var str = capitalizeMe($(this).html()); $(this).html(str); }); function replaceAll( text,v1,v2 ){ while (text.toString().indexOf(v1) != -1) text = text.toString().replace(v1,v2); return text; }
如果你想大写“i”的每个实例,你可以做这样的事情
$('h2').each(function(){ var str = replaceAll(capitalizeMe($(this).html())," i "," I "); $(this).html(str); });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。