Делается это, например, так:
[syntax="javascript"]
<!-- example: jscript_newsblock.html -->
<html><head>
<script type="text/javascript" language="Javascript">
function visObj(objId, value){
if(value)
document.getElementById(objId).style.display = "block";
else
document.getElementById(objId).style.display = "none";
}
function selectMatching(index){
var i = 1;
for(; i < 4; i++)
visObj('n' + String(i), (i == index) || (index == 0));
}
</script>
</head><body>
<p><a href="javascript:selectMatching(1)">show 1st</a><br>
<a href="javascript:selectMatching(2)">show 2nd</a><br>
<a href="javascript:selectMatching(3)">show 3rd</a><br>
<a href="javascript:selectMatching(0)">show all</a></p>
<div id="n1">news story 1: blah blah blah</div>
<div id="n2">news story 2: blah blah blah</div>
<div id="n3">news story 3: blah blah blah</div>
</body></html>
[/syntax]
Через regexp:
[syntax="javascript"]
<!-- jscript_newsblock, issue #2 -->
<html><head>
<script type="text/javascript">
cNews = ["elz", "el0", "fa0","fa1"];
function visObj(objId, value){
document.getElementById(objId).style.display = value? "block":"none";
}
function selectMatching(pattern){
rexp = new RegExp(pattern, "i");
for(i = 1; i <= cNews.length; i++)
visObj("nd" + String(i), rexp.test(cNews[i-1]));
}
</script>
</head><body onload="javascript:selectMatching('none')">
<p><a href="javascript:selectMatching('^fa')">show 06 jan *</a><br>
<a href="javascript:selectMatching('^el')">show 05 dec *</a><br>
<a href="javascript:selectMatching('^..0')">show * * 27</a><br>
<a href="javascript:selectMatching('')">show all</a></p>
<div id="nd4">2006, january, 28</div>
<div id="nd3">2006, january, 27</div>
<div id="nd2">2005, december, 27</div>
<div id="nd1">2005, december, 26</div>
</body></html>
[/syntax]
Мораль: rtfm
