document.getElementsByClassName = function(cl) {
var retnode = [];
var myclass = new RegExp('\\b'+cl+'\\b');
var elem = this.getElementsByTagName('*');
for (var i = 0; i < elem.length; i++) {
var classes = elem[i].className;
if (myclass.test(classes)) 
retnode.push(elem[i]);
}
return retnode;
};

解决方案 »

  1.   

    http://muffinresearch.co.uk/archives/2006/04/29/getelementsbyclassname-deluxe-edition/
      

  2.   

    顶一下牛人给的文章看不明白给个简单的:
    document.getElementsByAtt = function(att,value) {
    var retnode = [];
    var elem = this.getElementsByTagName('*');
    for (var i = 0; i < elem.length; i++) {
    if (elem.getAttribute(att)==value)//class是att="className"
    retnode.push(elem[i]);
    }
    return retnode;
    };
      

  3.   

    谢谢高手给的提示和文章
    终于解决……
    不过不知道是不是最好的方法……
    结帐。
    <form>
    <label>类型</label>
    <select onchange="slc('price','select',this.options[this.options.selectedIndex].value);"><option value="0">住房</option><option value="1">商铺</option><option value="2">写字楼</option></select>
    <label>价格</label>
    <select class="price"><option>5万元以下</option><option>10万元以下</option><option>20万元以下</option><option>50万元以下</option><option>100万元以下</option><option>200万元以下</option><option>500万元以下</option><option>1000万元以下</option><option>1000万元以上</option></select><select class="price"><option>每月500元以下</option><option>每月1000元以下</option><option>每月2000元以下</option><option>每月5000元以下</option><option>每月1万元以下</option><option>每月1万元以上</option></select><select class="price"><option>每月每方50元以下</option><option>每月每方100元以下</option><option>每月每方200元以下</option><option>每月每方200元以上</option></select>
    <script>
    function getElementsByClassName(strClass,strTag,objContElm){
    strTag=strTag || "*";
    objContElm=objContElm || document;
    var objColl=(strTag=='*' && document.all && !window.opera) ? document.all:objContElm.getElementsByTagName(strTag);
    var arr=new Array();
    var delim=strClass.indexOf('|') != -1  ? '|' : ' ';
    var arrClass=strClass.split(delim);
    for (var i=0,j=objColl.length;i<j;i++){
    var arrObjClass=objColl[i].className.split(' ');
    if (delim==' ' && arrClass.length>arrObjClass.length) continue;
    var c=0;
    comparisonLoop:
    for (var k=0, l=arrObjClass.length;k<l;k++){
    for (var m=0, n=arrClass.length;m<n;m++){
    if (arrClass[m]==arrObjClass[k]) c++;
    if ((delim=='|' && c==1) || (delim==' ' && c==arrClass.length)){
    arr.push(objColl[i]);
    break comparisonLoop;
    }
    }
    }
    }
    return arr;
    }
    function slc(tg,tp,id){
    var myObjColl=getElementsByClassName(tg,tp);
    for (var i=0,j=myObjColl.length;i<j;i++){
    myObjColl[i].style.display="none";
    myObjColl[id].style.display="block";
    }
    }
    </script>
    <input type="submit" value="提交" />
    </form>