我得到了这个有效的代码:
<html>
<head>
<title>JS highlighting test</title>
<script type="text/javascript">
function highlight()
{
var t = document.getElementById('highlight').innerHTML;
t = t.replace(/(if|switch|for|while)\s*(\()/gi, "<b>$1</b>$2");
document.getElementById('highlight').innerHTML = t;
}
</script>
</head>
<body onload="javascript:highlight();">
<pre id="highlight">
1 if(foo) {
2 bar();
3 }
4
3 while(--baz) {
5 oof();
6 }
</pre>
</body>
</html>
我想为所有<pre>
标签而不是只有一些具有特定和标签的标签
独特的ID,因为它现在有效。最好的方法是组合一个特定的标签
具有特定ID。是否可以扩展上面的小JS函数来实现这一点
方式(使用一些document.getElementsByTag(tag).getElementsById(id).innerHTML
或
在循环中类似的东西(我不知道究竟是什么能够满足需要)?我试过自己,但没有取得真正的成功。我只需要尽可能简单的解决方案,没有什么特别的。
感谢您的想法。
-
NKD
答案 0 :(得分:2)
你几乎猜对了; - )
function doSomethingWithAllPres() {
var pres = document.getElementsByTagName("pre");
for (var i = 0; i < pres.length; i++) {
// you can check the class name via pres[i].className === "highlight"
// (and you should use a class instead of an id therefore)
if (pres[i].className.indexOf("highlight") >= 0) {
// action goes here
}
}
}
使用像jQuery这样的JS-Framework,事情会更简单:
$("pre.highlight").each(function(i) {
// action goes here
});
然而,使用框架可能有点过分......