function getElementByClassName(node, classname) {
               var a = [];
               var re = new RegExp('(^| )'+classname+'( |$)');
               var els = document.getElementsByTagName(node);
               for(var i=0,j=els.length; i<j; i++)
                       if(re.test(els[i].className))
                               a.push(els[i]);
               return a;
}var es = getElementByClassName("div","item");
for(var i=0;i<es.length;i++){
    alert(es[i].innerHTML);//es[i].childNodes[0].href es[i].childNodes[0].innerHTML
}

解决方案 »

  1.   

    现在我自己把正则写的差不多了.
    我想在一个完整的HTML代码中找出<div class="modbox" id="m_artclg">...</div>中的内容!
      

  2.   

    $str= preg_replace("/\<div class=\\\"modbox\\\" id=\\\"m_artclg\\\"\>(.+?)\<\/div\>/",  "\\1", $str);
    我写的不对吗?但是兼容性不强,怎么办?<?
    $b="<div class=\"modbox\" id=\"m_artclg\">...</div></div>";//这样就不行了
    echo preg_replace("/\<div class=\\\"modbox\\\" id=\\\"m_artclg\\\"\>(.+?)\<\/div\>/",  "\\1", $b);
    ?>
      

  3.   

    你只需匹配class="item"的div就可以了,不是吗?$reg = '#<div class="item"><a[^>]+>(.+)</a>#U';
    preg_match_all($reg, $str, $out);
    print_r($out[1]);