<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
  <!-- 生成缩略图 开始-->
    <script language="javascript" type="text/javascript">
    var allowExt = ['jpg', 'gif', 'bmp', 'png', 'jpeg'];     
        var preivew = function(file, container){
            try{
                var pic =  new Picture(file, container);
                }catch(e){alert(e);}
            }     
        var Picture  = function(file, container){
                
            var height = 0,widht     = 0, ext    = '',size = 0,name = '',path = '';        
            var self = this;        
            if(file){              
                name = file.value;            
                if (window.navigator.userAgent.indexOf("MSIE")>=1){     
                    file.select();                 
                    path = document.selection.createRange().text;         
                }else if(window.navigator.userAgent.indexOf("Firefox")>=1){ 
                    if(file.files){         
                        path =  file.files.item(0).getAsDataURL();         
                    }else{                    
                    path = file.value;            
                    }
                }
            }else{    
                throw "bad file";    
            }          
            ext = name.substr(name.lastIndexOf("."), name.length);    
            //if(container.tagName.toLowerCase() != 'img'){
            //    throw "container is not a valid img label";        
            //    container.visibility = 'hidden';
            //}
            container.src = path;        
            container.alt = name;        
            container.style.visibility = 'visible';        
            height = container.height;        
            widht  = container.widht;        
            size   = container.fileSize;        
            this.get = function(name){ return self[name];}        
            this.isValid = function(){            
                if(allowExt.indexOf(self.ext) !== -1){        
                    throw 'the ext is not allowed to upload';        
                    return false;            
                }
            }
        }
    </script>
    <!-- 生成缩略图 结束-->
  <script lanuage="javascript">
  var i = 1;
  function add(){
    
    var table = document.getElementById("tbody");
    var tr = document.createElement("tr");
    
    table.appendChild(tr);
    
    var td1 = document.createElement("td");
    
    var td2 = document.createElement("td");
    
    tr.appendChild(td1);
    
    tr.appendChild(td2);
    
    
    /*var sel = document.createElement("img");
    img_id = "img"+i;
    sel.id = img_id;
    sel.height="100px";
    sel.width="100px";
    td2.appendChild(sel);*/
    $img_id = "img"+i;
    td2.innerHTML = "<img id="+$img_id+"  style='visibility:hidden' height='100px' width='100px'>";
    
    /*var text =  document.createElement("input");
    text.type = "file";
    var textname = "name"+i;
    text.name = textname;
    text.setAttribute = ("onchange","preivew(this, document.getElementById(img_id));");
    td1.appendChild(text);*/
    var textname = "file"+i;
    td1.innerHTML="<input type='file' name="+textname+" onchange='preivew(this,document.getElementById("+$img_id+"))'>";   
    
    i=i+1;
}
function del(){
    var trs = document.getElementsByTagName("tr");
    
    var tbody = document.getElementById("tbody");
    tbody.removeChild(trs[trs.length - 1]);
}
  </script>
</HEAD>
<BODY>
  <table id="tab" border="1">
        <tbody id="tbody">
            <tr>
                <td align="right" colspan="2">
                <input type="button" value="添加" onclick="add()" />
                <input type="button" value="删除" onclick="del()" />
                </td>
            </tr>
            <tr>
                <td>资源名称</td>
                <td>资源状态</td>
            </tr>
            <tr>
                <td>gfdfdsafsd</td>
                <td>0</td>
            </tr>
        </tbody>
    </table>
</BODY>
</HTML>其中的语句td1.innerHTML="<input type='file' name="+textname+" onchange='preivew(this,document.getElementById("+$img_id+"))'>";
生成的html如下:
<input type="file" onchange="preivew(this,document.getElementById(img1))" name="file1">
getElementById 少了一对单引号,应该是这样才对
<input type="file" onchange="preivew(this,document.getElementById('img1'))" name="file1">
但是这个语句我应该怎么改,暂时还没想出来
td1.innerHTML="<input type='file' name="+textname+" onchange='preivew(this,document.getElementById("+$img_id+"))'>";如下的改发都已经试过了
td1.innerHTML="<input type='file' name="+textname+" onchange='preivew(this,document.getElementById('"+$img_id+"'))'>";
td1.innerHTML="<input type='file' name="+textname+" onchange='preivew(this,document.getElementById(""+$img_id+""))'>";
td1.innerHTML="<input type='file' name="+textname+" onchange='preivew(this,document.getElementById("""+$img_id+"""))'>";
这个单引号就不知道怎么加上去了

解决方案 »

  1.   

    onchange='preivew(this,document.getElementById(\'"+$img_id+"\'))
      

  2.   

    td1.innerHTML="<input type='file' name="+textname+" onchange='preivew(this,document.getElementById(\""+$img_id+"\"))'>";用\进行转义
      

  3.   

    你看这样怎么样,在onchange='preivew(this,"+$img_id+"));只传那个Image控件的ID,在preivew里边根据ID再去获取Container。
      

  4.   

    td1.innerHTML="<input type=file name="+textname+" onchange=preivew(this,document.getElementById('"+$img_id+"'))>";