<div id=a>
<INPUT class=dxs value=123 name=xzn type=text>
<INPUT class=dxs  name=xzn type=text>
<INPUT class=dxs  name=xzn type=text>
<INPUT class=dxs value=123 name=xzn type=text>
<INPUT class=dxs  name=xzn type=text>
</div>
nr=document.getElementById("a").innerHTML.toLowerCase()
用nr.replace把 value="" 或无 value 的INPUT标签删除

解决方案 »

  1.   

    用jquery实现
    <script>
    $().ready(function(){
        $("input[name=xzn]").each(function(){
           if($(this).val()=="")
           {
            $(this).remove();
           } 
         });
    });
    </script>
      

  2.   

    可参考
    <div id=a>
    <INPUT class=dxs value=123 name=xzn type=text>
    <INPUT class=dxs name=xzn type=text>
    <INPUT class=dxs name=xzn type=text>
    <INPUT class=dxs value=234 name=xzn type=text>
    <INPUT class=dxs value="" name=xzn type=text>
    <INPUT class=dxs name=xzn type=text>
    </div>
    <script>
    var nr = document.getElementById("a").innerHTML.toLowerCase();
    alert(nr.replace(/<input(?:(?!value="[^"]+")[^>])*\/?>/g,''));
    </script>
      

  3.   

    document.getElementById("a").innerHTML+="<INPUT class=dxs value=123 name=xzn type=text><INPUT class=dxs  name=xzn type=text>"是以这种形式存在的,实际上<div id="a">里是空的
      

  4.   

    不用正则的方式:window.onload=function(){
     var obj =document.getElementById("a").childNodes;
     for(var i=0;i<obj.length;i++){
       if(obj[i].nodeType!="3"){
         if(!obj[i].getAttribute("value")){
           obj[i].outerHTML="";  
         }
       }
     }
    }
      

  5.   

    <div id=a>
    <INPUT class=dxs value=123 name=xzn type=text>
    <INPUT class=dxs name=xzn type=text>
    <INPUT class=dxs name=xzn type=text>
    <INPUT class=dxs value=234 name=xzn type=text>
    <INPUT class=dxs value="" name=xzn type=text>
    <INPUT class=dxs name=xzn type=text>
    </div>
    <script>
    var regex = /<.+?value=(("|')?)[^ "']+\2.+>/gi
    var result = document.getElementById("a").innerHTML.match(regex).join("\n")
    alert(result);
    </script>