Javascript 修改HTML文本&;替换它
我正在处理一个HTML列表,其中包含了所有的名字,每个名字都是以这种格式写的: “名字lastname/” (示例:约翰·史密斯/) 因此,我很想知道是否可以使用JavaScript将文本格式更改为: “名字Lastname” (例如:约翰·史密斯) 因为我对JavaScript比较陌生,我还没有对它做太多的工作,所以我没能做到这一点 以下是HTML列表的一个片段:Javascript 修改HTML文本&;替换它,javascript,html,text,Javascript,Html,Text,我正在处理一个HTML列表,其中包含了所有的名字,每个名字都是以这种格式写的: “名字lastname/” (示例:约翰·史密斯/) 因此,我很想知道是否可以使用JavaScript将文本格式更改为: “名字Lastname” (例如:约翰·史密斯) 因为我对JavaScript比较陌生,我还没有对它做太多的工作,所以我没能做到这一点 以下是HTML列表的一个片段: <ul> <li><a href="john-smith/"> john-smith/<
<ul>
<li><a href="john-smith/"> john-smith/</a></li>
<li><a href="joe-smith/"> joe-smith/</a></li>
<li><a href="gina-smith/"> gina-smith/</a></li>
<li><a href="tom-smith/"> tom-smith/</a></li>
<li><a href="peter-smith/"> peter-smith/</a></li>
</ul>
另外,如果我不够清楚,我不想更改href,只想更改显示的实际文本。您可以使用Regex执行此操作:
var REGEX_FIND=/(.*)-(.*)\/$;
//发件人:http://stackoverflow.com/questions/1026069/capitalize-the-first-letter-of-string-in-javascript
函数首字母大写(字符串){
返回string.charAt(0.toUpperCase()+string.slice(1);
}
$('ul li a')。每个(函数(){
var text=$(this.text().trim();
var-m;
if((m=REGEX_FIND.exec(text))!==null){
$(此).text(大写第一字母(m[1])+“”+大写第一字母(m[2]);
}
});
或者,您也可以这样做
//以列表项内的锚定标记为目标
var namesList=document.queryselectoral(“#namesList li a”);
//循环通过
对于(变量i=0;i
你是在生成这个html,还是只是想在以后修改它?@FrankerZ我相信这个html是生成的,我收到了这个html列表,我想对它进行一些调整。我在下面发布了如何修改字符串。如果你想发布一个更大的HTML块,我可以告诉你如何用你想要的内容修改锚定标记的内容。添加了一个更大的HTML块@FrankerZThanks的代码,但我如何循环通过我的每个列表项,并从那里更改HTML文本?对不起,我是JavaScript新手!检查我在上面对您的问题的评论@dan将脚本添加到html的底部(就在
标记之前),或者将您的函数包装在$(document).ready(function(){/*您的代码在这里*/})代码>标签。由于HTML在代码运行时没有实际初始化,$('ul li a')
找不到任何元素,因此代码没有运行。对于这种任务,您可以随意使用var tom_link=document.querySelectorAll(“a[href='tom-smith'])代码>,jQuery有点过火了。@FrankerZ我现在明白为什么它不起作用了;我学到了很多!非常感谢你的帮助!不错的替代方法是的,但它不适用于IE8及以下版本,尽管有多填充