例如<div id='myid' class="myclass"> </div>
我要匹配出来一个HTML标签的class 或者 id 是什么。。(有ID拿ID,没有就拿CLASS)
最好也能匹配出来到底是div还是span还是其它

解决方案 »

  1.   

    提供一个jQuery的解决方式
    <script>
        function getTagInfo(e){
    var str='';
    if(jQuery(e).attr('id')){
    str += 'id:'+jQuery(e).attr('id');
    }else if(jQuery(e).attr('class')){
    str += 'class:'+jQuery(e).attr('class');

    }else{
    str += '既没设置id也没设置class属性';
    }
    str += '\ntagName:'+jQuery(e).get(0).tagName;
    alert(str);
        }
    </script>
    <div id='myid' class="myclass" onclick="getTagInfo(this)">点我试试</div>
    <span id='myid' class="myclass" onclick="getTagInfo(this)">点我试试</span>
      

  2.   

    刚刚没注意将其写入到源代码中,使得格式错乱,看如下:function getTagInfo(e){
    var str='';
    if(jQuery(e).attr('id')){
    str += 'id:'+jQuery(e).attr('id');
    }else if(jQuery(e).attr('class')){
    str += 'class:'+jQuery(e).attr('class');

    }else{
    str += '既没设置id也没设置class属性';
    }
    str += '\ntagName:'+jQuery(e).get(0).tagName;
    alert(str);
    }
    <div id='myDivId' class="myDivClass" onclick="getTagInfo(this)">点我</div>
    <span id='mySpanId' class="mySpanClass" onclick="getTagInfo(this)">点我</span>
      

  3.   

    $html = '<div id="myid" class="myclass"></div>';
    $dom = new DOMDocument();
    @$dom->loadHTML($html);
    $x = new DOMXPath($dom); foreach($x->query("//div") as $node)//如果要span的话,//div 换成 //span 
    {
        echo $node->getAttribute("id");
    echo '<br />';
    echo $node->getAttribute("class");
    }
      

  4.   

    我也没看清楚,原来span或者div是不一定的,那就换  //* 然后 nodeName 获取HTML标签名。
     <?php
    $html = '<div id="myid" class="myclass"></div>';
    $dom = new DOMDocument();
    @$dom->loadHTML($html);
    $x = new DOMXPath($dom); foreach($x->query("//*") as $node) 
    {
        echo $node->getAttribute("id"); //myid
    echo '<br />';
    echo $node->getAttribute("class"); //myclass
    echo '<br />';
    echo $node->nodeName; // div

    ?>
      

  5.   


    用PHPQUERY 可以实现吗
      

  6.   


    用PHPQUERY 可以实现吗
    sorry!PHPQUERY我没接触过