簡體   English   中英

對象不支持IE11中的屬性或方法'getElementsById'

[英]Object doesn't support property or method 'getElementsById' in IE11

我正在嘗試使用Java腳本將html數據導出到excel。 有趣的是,當我使用getElementsByTagName而不是getElementById時,它確實起作用。 但是,我需要查明id元素,因此“ getElementById ”是我需要的(我想)。 當我在IE中調試以下代碼時,它給了我:

對象不支持屬性或方法“ getElementsById”

這是我所擁有的:

HTML(僅供參考):

<body>
<table>
<tr>
  <td>content 1</td>
  <td>content 2</td>
      <td id="R">content I need</td>
      <td>some other content</td>
   </tr>
</table>
</body>

和隨附的JS

<script type="text/javascript">
function write_to_excel() 
{
str="";

var mytable = document.getElementById("R")[0];
var row_Count = mytable.rows.length;
var col_Count = mytable.getElementById("R")[0].getElementById("R").length;    

var ExcelApp = new ActiveXObject("Excel.Application");
var ExcelSheet = new ActiveXObject("Excel.Sheet");
ExcelSheet.Application.Visible = true;

for(var i=0; i < row_Count ; i++) 
{   
    for(var j=0; j < col_Count; j++) 
    {           
        str= mytable.getElementById("R")[i].getElementById("R")[j].innerHTML;
        ExcelSheet.ActiveSheet.Cells(i+1,j+1).Value = str;
    }
}
}
</script>

我有感覺-這很瑣碎,但是...預先感謝!)

ID必須是唯一的。

因此,您要查找的函數稱為getElementById (單數)

getElementById方法返回一個DOM元素(如果您有多個具有相同ID的HTML元素,則您的頁面有錯誤,但瀏覽器不會抱怨,因為10年前這是很多人犯的常見錯誤)。 因此聲明:

document.getElementById("R")[0]

毫無意義。 相反,您想要的是:

var myTD = document.getElementById("R");

如果您具有這樣的頁面結構:

<table id='T'>
<tr>
  <td>content 1</td>
  <td>content 2</td>
  <td>content I need</td>
  <td>some other content</td>
</tr>
</table>

想要迭代每一行中的每一列,您可以這樣做:

var mytable = document.getElementById("T");
var table_rows = mytable.getElementsByTagName('tr');
for (var row=0;row<table_rows.length;row++) {
    var row_columns = table_rows[row].getElementsByTagName('td');
    for (var col=0;col<row_columns.length;col++) {
        var item = row_columns[col];
        // process item here
    }
}

有關如何瀏覽DOM的更多信息,請參見HTMLElement文檔: https : //developer.mozilla.org/en/docs/Web/API/Element

DOM API的完整文檔: https : //developer.mozilla.org/en/docs/DOM

您也可以在MSDN上查看相關文檔,而不是MDN來查看IE專用內容,但我更喜歡MDN,因為它記錄了API的兼容級別(其他瀏覽器實現了什么功能)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM