但這問題還好,其實可以在 google 上找到各式各樣的範例來參考,也不用擔心你會找不到。只是自己將測試過、合用的範本記錄下來,方便日後 Copy ...
我在 anyexample 網站找到一段適用於目前各主要瀏覽器都可正常使用的程式 getElementsByClass():
<html>
<head>
<script>
function getElementsByClass( searchClass, domNode, tagName) {
if (domNode == null) domNode = document;
if (tagName == null) tagName = '*';
var el = new Array();
var tags = domNode.getElementsByTagName(tagName);
var tcl = " "+searchClass+" ";
for(i=0,j=0; i<tags.length; i++) {
var test = " " + tags[i].className + " ";
if (test.indexOf(tcl) != -1)
el[j++] = tags[i];
}
return el;
}
function SearchClassSwitch()
{
var cssArray=getElementsByClass('dv');
for(i=0; i<cssArray.length; i++)
{
if (cssArray[i].style.display=='')
cssArray[i].style.display = 'none';
else
cssArray[i].style.display = '';
}
}
</script>
</head>
<div class="dv">讓我藏起來</div>
<div class="dv">看不見</div>
<input type="button" value="隱藏切換" onclick="SearchClassSwitch();" />
</html>
他執行的結果就會如下圖:
既然先前有提到, HTML 5 會開始支援 getElementsByClassName() 方法,趁這機會也來測試一下:
<html>
<head>
<script>
function getElementsByClass( searchClass, domNode, tagName) {
if (domNode == null) domNode = document;
if (tagName == null) tagName = '*';
var el = new Array();
var tags = domNode.getElementsByTagName(tagName);
var tcl = " "+searchClass+" ";
for(i=0,j=0; i<tags.length; i++) {
var test = " " + tags[i].className + " ";
if (test.indexOf(tcl) != -1)
el[j++] = tags[i];
}
return el;
}
function SearchClassSwitch()
{
var cssArray=getElementsByClass('dv');
for(i=0; i<cssArray.length; i++)
{
if (cssArray[i].style.display=='')
cssArray[i].style.display = 'none';
else
cssArray[i].style.display = '';
}
}
function Html_5()
{
var cssArray=document.getElementsByClassName('dv');
for(i=0; i<cssArray.length; i++)
{
if (cssArray[i].style.display=='')
cssArray[i].style.display = 'none';
else
cssArray[i].style.display = '';
}
}
</script>
</head>
<div class="dv">讓我藏起來</div>
<div class="dv">看不見</div>
<input type="button" value="隱藏切換" onclick="SearchClassSwitch();" />
<input type="button" value="隱藏切換 Html5" onclick="Html_5();" />
</html>
結果是:
IE8 不行
FireFox 3.6 OK
Chrome 11.x OK
Opera 11.x OK
參考:
01.HTML5 技術體系中的 JavaScript
02.JavaScript getElementsByClass function


沒有留言:
張貼留言