document.createElement无法在IE 8及更低版本上运行

时间:2013-03-19 21:17:37

标签: javascript html

我有这个让用户上传图片。我想将图片数量限制为4.首先它只显示一个输入字段,然后如果用户想要添加更多,他们可以点击Button-Add-icon.png并显示另一个输入字段。当他们达到四个输入并决定删除一个输入时,他们点击Button-Delete-icon.png。

这一切在Firefox,Chrome,Seamonkey和IE9上运行良好。但它不适用于IE8,IE7和之前。 有人可以暗示如何解决这个问题吗?

由于

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org 
 /TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 <title>Document sans titre</title>

 <script type="text/javascript">
   var totalItems = 0;
   function addItems()
 {
   if(totalItems < 3) 
  {
  var table1 = document.getElementById('tab1');
  var newrow = document.createElement("tr");
  var newcol = document.createElement("td");
  var input = document.createElement("input");
  input.type="file";
  input.name="image[]";
  newcol.appendChild(input);
  newrow.appendChild(newcol);
  table1.appendChild(newrow);
  totalItems++;
  } else {
    //Display your message here.. 
         }
 }


  function remItems()
{
var table1 = document.getElementById('tab1');
var lastRow = table1.rows.length;
if(lastRow>=2) 
 {
 table1.deleteRow(lastRow-1);
 totalItems--; 
 }
}

 </script>
 </head>

 <body>

 <table align="center" border="0" id="tab1" >
  <tr>
   <td width="218" align="center"><input type="file" name="image[]" /></td>
      <td width="54" align="center"><img src="images/Button-Add-icon.png"  
      style="cursor:pointer" onclick="addItems()" />
      </td>
   <td><img src="images/Button-Delete-icon.png"  style="cursor:pointer" 
    onclick="remItems()" />
   </td>
  </tr>
 </table>

  <table align="center" border="0" id="tab2">
  </table>

 </body>
 </html>

1 个答案:

答案 0 :(得分:1)

您将该行作为子元素添加到错误的元素中。

HTML表格总是有一个tbody元素作为子元素,所有tr元素都在此内部。如果您编写一段HTML,其中包含一个没有tbody元素的表格,它将自动创建,但在稍后更改表格时,您必须考虑tbody元素。

一个简单的解决方法是显式编写tbody元素,为其指定ID,并在tbody元素中插入新行,而不是在table元素中插入新行。

<table>
    <tbody id="tb1">
        <tr><td></td></tr>
    </tbody>
</table>