以下循环遍历所有 h2 元素并通过正则表达式替换删除开头:
window.onload = function() {
var h2s = document.getElementsByTagName("h2"),
i;
for (i=0; i < h2s.length; i++)
h2s[i].innerHTML = h2s[i].innerHTML.replace(/^[^-]+ - /,"");
};
演示:http: //jsfiddle.net/nGfYd/5/
处理程序确保代码在onload
页面加载完成后运行,因为 JavaScript 在页面被解析时执行,但它只能操作已经被解析的元素。如果将代码包含在相关元素之后的脚本块中,则不需要onload
处理程序,实际上我的偏好是将<script>
块放在结束标记之前的正文末尾</body>
而不使用onload
处理程序。
编辑:从其他答案下的评论看来,您很乐意使用 jQuery,在这种情况下,您可以这样做:
$(document).ready(function(){
$("h2").text(function(i, oldVal) {
return oldVal.replace(/^[^-]+ - /,"");
});
});
演示:http: //jsfiddle.net/nGfYd/7/
如果你将一个函数传递给.text()
jQuery,它将为每个元素调用该函数,并将元素的旧(当前)值传递给它,所以你也不需要.each()
循环。
(同样,如果您将代码放在正文末尾的脚本块中,则不需要文档就绪处理程序。)