先上代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title> 
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
 </head> <body>
  <div id="test">
<table border="1" width="200px">
<tr>
<td style="vnd.ms-excel.numberformat:@; "></td>
<td style="height:100px;"></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</table>
  </div>
  <button id="b1" onclick="JavaScript:alert($('#test').html());">Get Table Html 1</button>
  <button id="b2" onclick="JavaScript:alert(document.getElementById('test').innerHTML);">Get Table Html 2</button>
 </body>
</html>
得到的html中,  style="vnd.ms-excel.numberformat:@; " 这个样式丢失了,而其他的样式还在。。麻烦各位高手帮我看看。

解决方案 »

  1.   


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
     <head>
      <title> New Document </title> 
      <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
     </head> <body>
      <div id="test">
        <table border="1" width="200px">
        <tr>
            <td style="vnd.ms-excel.numberformat:@; "></td>
            <td style="height:100px;"></td>
        </tr>
        <tr>
            <td></td>
            <td></td>
        </tr>
        </table>
      </div>
      <button id="b1" onclick="JavaScript:alert($('#test').html());">Get Table Html 1</button>
      <button id="b2" onclick="JavaScript:alert(document.getElementById('test').innerHTML);">Get Table Html 2</button>
    <script>
    alert(  $('td')[0].getAttribute('style') )
    for(var p in $('td')[0].getAttribute('style')){
    document.write('<br/>'+p)
    }
    </script>
     </body>
    </html>
    ff 下 返回的是 vnd.ms-excel.numberformat:@;
    ie 下 是 object
    这个问题 第一次遇到。
      

  2.   

    调试过了。。除了IE9。。FF和chrome都可以输出来。。应该是IE浏览器不支持这种写法
      

  3.   

    确实是比较少见的样式,但用这个样式到长数字的文本(比如身份证号码)之后,导出到Excel,可以以文本显示该长数字文本,而不会被excel当成数字并用科学记数法显示。
      

  4.   

    因为你的样式是错误的,如果你样式格式正确的话,IE中就没问题。格式错误,可能IE中不显示错误的样式。